私はJSクロッパーライブラリを使用しています。トリミングが完了すると、クロッパーがキャンバスを提供してくれるので、データを取得してトリミングした画像をサーバーにアップロードできます。
現在は正常に動作しますが、キャンバスを PNG データの URL に変換するとき、出力画像を非常に大きくしたいので (バナーです)、アップロードに実際には多くの時間がかかるため、圧縮されているように見える JPEG を使用することを好みます。より良い大きな写真。ただし、JPEG にはアルファ チャネルがないため、背景に置き換える必要があるようです (色: 白を選択します)。
元の画像が次のような場合に、そのキャンバスを JPEG のデータ URL に変換する方法を教えてください。
PNGで警告アイコンを切り抜いた画像です。背景はアルファで、いくつかの黒い描画があります。
私はいくつかの試みをしましたが、キャンバスに長方形を描くと、最初の絵の上に描かれるようです。クロッパー ライブラリが既に構築されたキャンバスを提供するため、画像が追加される前に四角形を描画できません。
canvasToDataUrl(cropper) {
const ctx = canvas.getContext('2d');
ctx.fillStyle = '#ffffff';
ctx.fillRect(0, 0, canvas.width, canvas.height);
return canvas.toDataURL("image/jpeg",1);
},
これを行うと、最後に白い画像しか得られません。
四角形を描画せずに JPEG に変換しようとすると、黒い画像が表示されます。