javascript – 保留Fabric.js中Image的宽高比

前端之家收集整理的这篇文章主要介绍了javascript – 保留Fabric.js中Image的宽高比前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
如何保留加载到画布上的图像的宽高比?当图像从本地系统加载到画布上时,我正在创建宽度= canvas.width和height = canvas.height的图像对象.

但质量缺失.即使加载的图像分辨率更高.有没有办法保留加载图像的宽高比?

解决方法

我做对了吗:你想用画面填充画布,保持比例并隐藏溢出?

你应该重新计算它们:

cw,ch – 帆布尺寸

iw,ih – 图像尺寸

  1. ih = imgObj.naturalHeight;
  2. iw = imgObj.naturalWidth;

fw,fh – 最终尺寸

  1. width_ratio = cw / iw;
  2. height_ratio = ch / ih;
  3. if (width_ratio > height_ratio) {
  4. fw = iw * width_ratio;
  5. fh = ih*fw/iw;
  6. } else {
  7. fh = ih * height_ratio;
  8. fw = iw*fh/ih;
  9. }

然后只是提供这样的选项

  1. var image = new fabric.Image(imgObj);
  2. image.set({
  3. width:fw,height:fh
  4. });
  5.  
  6. canvas.add(image);

猜你在找的JavaScript相关文章