1
産業用プリンタでバッチ印刷用の画像をレイアウトするElectronアプリを構築しています。画像の反転/ミラーリングに問題があります。HTML5キャンバスで画像を反転/回転する方法
画像を反転するか、回転するか、またはその両方を行うかを決定するコードです。
_createClass(Image, null, [{
key: 'drawRotatedImage',
value: function drawRotatedImage(canvas, image, angle, mirrorImage) {
var context = canvas.getContext('2d');
if (angle > 0) {
context.rotate(angle * (Math.PI/180));
}
if (mirrorImage === true) {
context.scale(-1, 1);
context.drawImage(image, -image.width, -image.height, image.width, image.height);
} else {
context.drawImage(image, 0, angle === 0 ? 0 : -image.height);
}
return canvas;
}
},
コードの最初の部分は、画像を回転する必要があるかどうかを認識します。これは正常に動作します。ただし、 'mirrorImage'関数は、回転させる必要のない画像に対して正しく機能しません。回転された画像ではすべてが完全に機能します。何か不足していますか?誰も助けることができる、これは私を何時間も怒らせている。
おかげ
それはあなたが達成したい正確に何を少し不明です。私はあなたのイメージを反転させたい、あるいはその場で回転させたいと思っていますか?しかし、あなたのコードでは、イメージはキャンバスの原点を中心に回転され、各イメージの中心は回転しません。 – Josh
更新。私は最終的にそれを修正することができました。画像が0度(ランドスケープ)で、ミラーリングが必要な場合は、イメージを鏡映して回転させないようにするIFが欠けていました。以下のコード。 –