如何保持加载到画布上的图像的纵横比?当从本地系统加载图像到画布上时,我创建了一个图像对象,其中
但是质量丢失了。即使加载的图像分辨率更高。有没有办法保持加载的图像的纵横比?
width=canvas.width
和height=canvas.height
。但是质量丢失了。即使加载的图像分辨率更高。有没有办法保持加载的图像的纵横比?
width=canvas.width
和height=canvas.height
。我翻译得对吗:您想用图像填充画布,保持比例并隐藏溢出吗?
您应该重新计算它们:
cw
,ch
- 画布尺寸
iw
,ih
- 图像尺寸
ih = imgObj.naturalHeight;
iw = imgObj.naturalWidth;
fw
, fh
- 最终尺寸
width_ratio = cw / iw;
height_ratio = ch / ih;
if (width_ratio > height_ratio) {
fw = iw * width_ratio;
fh = ih*fw/iw;
} else {
fh = ih * height_ratio;
fw = iw*fh/ih;
}
然后只需像这样提供选项
var image = new fabric.Image(imgObj);
image.set({
width:fw,
height:fh
});
canvas.add(image);