すでにキャンバスに描画されている画像を拡大縮小しようとしています。これはコードです:
var canvas = document.getElementById('splash-container');
var context = canvas.getContext('2d');
var imageObj = new Image();
imageObj.onload = function() {
// draw image at its original size
context.drawImage(imageObj, 0, 0);
};
imageObj.src = 'images/mine.jpeg';
// Now let's scale the image.
// something like...
imageObj.scale(0.3, 0.3);
どうすればいいですか?
あなたはそれについて間違って考えています。画像をcanvas
に描画すると、imageObj
オブジェクトとは関係がなくなります。 imageObj
に対して何をしても、すでに描画されているものには影響しません。画像を拡大縮小する場合は、 drawImage
function :で実行します。
drawImage(imgObj, 0, 0, imgObj.width * 0.3, imgObj.height * 0.3)
スケーリングをアニメーション化したい場合、または最初にフルサイズで画像を描画する必要がある他の効果を実現したい場合は、縮小された画像を描画する前に、まず クリア する必要があります。
Robertcの言うことは正しいですが、本当にキャンバス上で画像を拡大縮小したい場合after何らかの理由で画像を描画する場合は、CSSの幅/高さのプロパティを使用してキャンバス全体を拡大縮小できます。再描画せずに画像。