我正在尝试缩放已经绘制到画布中的图像。 这是代码:
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);
我该怎么办?
答案 0 :(得分:20)
你在想错了。将图像绘制到canvas
后,它与imageObj
对象无关。你对imageObj
所做的任何事情都不会影响已经绘制的内容。如果要缩放图像,请执行drawImage
function:
drawImage(imgObj, 0, 0, imgObj.width * 0.3, imgObj.height * 0.3)
如果您想为缩放设置动画或者想要实现其他一些需要您以最大尺寸绘制图像的效果,那么在绘制缩小的图像之前,您必须先clear it。
答案 1 :(得分:3)
robertc说的是正确的,但如果您真的想在绘制它之后在画布上缩放图像由于某种原因,您可以使用CSS宽度/高度属性缩放整个画布,这将缩放图像而不必重绘它。