私はイメージのアップロードを実装していますが、それ以前は限界に基づいていくつかのサイズ変更を行いたいとします(max-width、max-height、max-areaなど)。問題はイメージのサイズを変更するのではなく、ファイルサイズを変更します。Canvas image resizingはファイルを大きくする
私はすでに品質をあきらめていますが、キャンバス、Pica、Hermiteから得られる結果に目に見える違いはありませんでしたので、私はオフスクリーンキャンバスに行くことにしました。
ファイルサイズは345x518(54.2kB)のPNG画像があり、領域512x512に収まるように、341x512 jpeg(同じアスペクト比)にサイズ変更した後、ファイルサイズが171.7kB。
リサイズ機能:
function _canvasImageGet(original, dims) {
var canvas = document.createElement("canvas");
canvas.width = dims.w;
canvas.height = dims.h;
canvas.getContext("2d").drawImage(original, 0, 0, canvas.width, canvas.height);
return canvas;
}
は、どのような方法があり、どのように私はリサイズ後に小さいか、同じファイルサイズを得ることができますか?キャンバスを使用する必要はありませんが、サイズ変更がクライアント上にある場合、私は感謝します。すべてのanwersに感謝します。
画像とその内容によって異なります。画像をjpegに変換すると、2番目の引数として品質を設定できます。例えば 'canvas.toDataURL(" image/jpeg "、quality)'品質は0
Blindman67