当我使用drawImage来扫描一个大图像(如5M)时,结果看起来很糟糕,有没有更简单的方法可以用抗锯齿来削减图像? MDN已经提到过这个问题:
注意:放大图像时可能会变得模糊,如果图像缩小太多,图像会变得模糊。如果你有一些需要保持清晰的文字,最好不要进行缩放。
EIDT:我想将图片缩放到90x90,我的代码是这样的:
that.avatar_height >= that.avatar_width ?
that.context.drawImage($(this)[0], 86, 2, 90, that.avatar_height*90/that.avatar_width) :
that.context.drawImage($(this)[0], 86, 2, that.avatar_width*90/that.avatar_height, 90);
头像是要缩放的图像。
答案 0 :(得分:1)
在缩放图像时,首先获得上传的图像宽高比。
/* Calculating aspect ratio */
var imageAspectRatio = imgWidth / imgHeight;
/* Give the needed width and height of the image*/
/*For example you need like this */
var newWidth = 1024;
var newHeight = 768;
if( imgWidth <= 1024 ) {
var newWidth = newHeight * imageAspectRatio;
} else if(imgHeight <= 768) {
var newHeight = newWidth / imageAspectRatio;
} else if( imgWidth >= newWidth ) {
var newWidth = newHeight * imageAspectRatio;
} else if(imgHeight >= newHeight) {
var newHeight = newWidth / imageAspectRatio;
}
如果你这样做,你不能失去你的宽高比,所以缩放看起来不错