drawImage()
を使用してJPEG画像をキャンバスに描画した後、canvas.toDataURL()
を使用して保存可能なローカル(右側のマウスクリック)にすると、保存されたJPEG画像のファイルサイズは約40%になります。 Jpegを使用している場合にのみそうです。 PNG、GIF(NON-COMPRESSION-FILES)がサイズを上げます。私は、Image-FileをBase64に変換すると、サイズが約130%まで拡大すると思っていました。ですから、キャンバス要素には独自の圧縮機能が組み込まれていると思いますか?もしそうなら、私はそれを無効にすることはできますか?キャンバスはJpegの画像サイズを縮小しますが、なぜですか?
コードは次のようになります。
var img = new Image();
img.onload = function()
{
var width = img.width;
var height = img.height;
context.drawImage(img, 0, 0,width,height);
document.images[0].src = canvas.toDataURL('image/jpeg');//<-size = 30,2 KB (30.990 Bytes)
}
img.src = "http://www.roomeffect.de/pageslices/RSB.jpg"; //<-original file size = 58,5 KB (59.930 Bytes)
私は問題が何であるかを知らないのですか?
"...そのビットマップを再度圧縮する"?キャンバスは独自のビットマップを圧縮しますか? base64は圧縮なしです。何が私を邪魔するのか、圧縮率は約50%で、それはまったくうまくありません。 – Okyo
@Okyo画面に画像が表示されている場合は、現在圧縮されていません。なぜ50%の圧縮サイズが良くないのですか?圧縮の全体的なポイントは、物を小さくすることです。 – robertc
あなたが言っていることは実際に正しいですが、私の意図はこの問題の背後にある技術を理解することでした。とにかくサポートしてくれるよ! – Okyo