思路一对图片进行缩放的算法是不是有问题?
思路一中用drawImage(image,sx,sy,sw,sh,dx,dy,dw,dh)这个方法在原图上从坐标(sx,sy)截取宽为sw高为sw的一部分图像,然后绘制到画布上,貌似算法有问题,因为截取是从原图(sx,sy)截取的,并没有先对原图进行缩放
思路一中用drawImage(image,sx,sy,sw,sh,dx,dy,dw,dh)这个方法在原图上从坐标(sx,sy)截取宽为sw高为sw的一部分图像,然后绘制到画布上,貌似算法有问题,因为截取是从原图(sx,sy)截取的,并没有先对原图进行缩放
2019-09-19
function drawImageByScale(scale){
// 原图尺寸
var imageWidth=canvas.width;
var imageHeight=canvas.height;
if(scale>=1){
// 原图上截取的区域大小
var sw=imageWidth/scale;
var sh=imageHeight/scale;
// 原图上截取位置的坐标
var sx=imageWidth/2-sw/2;
var sy=imageHeight/2-sh/2;
var dx=0;
var dy=0;
var dw=canvas.width
var dh=canvas.height
} else {
var sw=imageWidth;
var sh=imageHeight;
var sx=0;
var sy=0;
var dx=canvas.width/2-sw/2*scale;
var dy=canvas.height/2-sh/2*scale;
var dw=sw*scale;
var dh=sh*scale;
}
context.drawImage(image,sx,sy,sw,sh,dx,dy,dw,dh)
}举报