ブラウザでアップロードした画像のサイズを変更したいと思います。キャンバスを使用して、アップロードされた画像をキャンバスに描画し、サイズを変更して、toDataURL メソッドの結果を使用しています。
単純化されたコード (アップロード部分なし) は次のようになります。
var canvas = document.createElement('canvas');
var ctx = canvas.getContext('2d', { alpha: false} );
// img src contains data url of uploaded image
ctx.drawImage(img, 0, 0, imgWidth, imgHeight);
var dataUrl = canvas.toDataURL('image/png');
問題は、dataUrl にアルファ チャネルが含まれていることですが、コンテキストはアルファを false に設定して作成されています。
アルファチャンネルなしでデータ URL を取得することは可能ですか?
そうでない場合は、Javascript 画像ライブラリの 1 つを使用することを検討しましたが、それらのほとんどは canvas に依存しています。
また、キャンバス内のデータを使用して画像をエンコードすることもできましたが、それはしたくありません:)