Javascript 如何重新缩放图像以使用画布绘制?

Javascript 如何重新缩放图像以使用画布绘制?,javascript,image,canvas,rescale,Javascript,Image,Canvas,Rescale,如果你有主意, 从这篇文章的代码开始,使用Flip呈现内容解决方案 我想在100*100的画布上绘制最后一幅200*200的图像,使用ctx.drawImagectx.canvas,0,0200200,0,0100100重新缩放它,但它只裁剪它 在绘制之前,将上下文缩放0.5 ctx.scale(0.5,0.5) varⅠ,j; 常数n=200; 常数大小=n**2;//**是权力 //const canvas=document.querySelector'canvas';//不需要的画布是

如果你有主意, 从这篇文章的代码开始,使用Flip呈现内容解决方案 我想在100*100的画布上绘制最后一幅200*200的图像,使用ctx.drawImagectx.canvas,0,0200200,0,0100100重新缩放它,但它只裁剪它
在绘制之前,将上下文缩放0.5

ctx.scale(0.5,0.5)
varⅠ,j; 常数n=200; 常数大小=n**2;//**是权力 //const canvas=document.querySelector'canvas';//不需要的画布是 //已定义为 //id=画布 const ctx=canvas.getContext2d; 常量imgData=ctx.createImageDatan,n; 常数Z=[]; 对于j=0;j<尺寸;j++{Z[j]=j*256/尺寸} Z[n*n-1]=0; i=0; 对于j=0;j<尺寸;j++{ imgData.data[i++]=Z[j]; imgData.data[i++]=Z[j]; imgData.data[i++]=Z[j]; imgData.data[i++]=255; } ctx.putImageDataimgData,0,0; ctx.标度0.5,0.5; //翻转画布 ctx.transform1,0,0,-1,0,canvas.height ctx.globalCompositeOperation=复制;//如果你有透明像素 ctx.drawImagectx.canvas,0,0; ctx.globalCompositeOperation=源代码结束;//重置为默认值