Canvas 如何缩放图像数据

Canvas 如何缩放图像数据,canvas,html5-canvas,Canvas,Html5 Canvas,如何缩放图像数据?我有160x200 imageData对象,现在我想显示它640x400。这必须很快,因为每个渲染步骤都已完成 var imgData = ctx.createImageData(160,200) ..... 你有没有试过用重绘的方式来缩放图像数据 ctx.putImageData(imgData, 0, 0); ctx.scale(4, 2); canvas.width = 640; canvas.height = 200; ctx.drawImage(canvas,

如何缩放图像数据?我有160x200 imageData对象,现在我想显示它640x400。这必须很快,因为每个渲染步骤都已完成

 var imgData = ctx.createImageData(160,200)
 .....

你有没有试过用重绘的方式来缩放图像数据

ctx.putImageData(imgData, 0, 0);
ctx.scale(4, 2);
canvas.width = 640;
canvas.height = 200;
ctx.drawImage(canvas, 0, 0);

第一种解决方案是使用中间画布。
但是,您可以通过仅在主画布上绘制并在其9参数样式中使用drawImage来避免使用其他画布:

var ctx=cv.getContext('2d');
//透明帆布
ctx.fillStyle='#FFF';
ctx.fillRect(0,0640,400);
//在160X200零件上画一个圆
ctx.fillStyle='#000';
ctx.beginPath();
ctx.arc(80100,80,0,6.28)
ctx.fill();
//检索图像数据
var imD=ctx.getImageData(0,0160200);
//透明帆布
ctx.fillStyle='#FFF';
ctx.fillRect(0,0640,400);
// --------------------
ctx.putImageData(imD,0,0);
ctx.drawImage(cv,0,0,160,200,0,0,640,400)

现在我记得您不能缩放现有图形,只有新图形才能缩放。您可以在此处了解有关此问题的更多信息: