当前位置:   article > 正文

使用Fabric创建的canvas画布背景图片,自适应画布宽高

使用Fabric创建的canvas画布背景图片,自适应画布宽高

之前的文章写过vue2使用fabric实现简单画图demo,完成批阅功能;但是功能不完善,对于很大的图片就只能显示一部分出来,不符合我们的需求。这就需要改进,对我们设置的背景图进行自适应。

有问题的canvas画布背景

修改后的画布背景就可以自适应了 

 

创建的具体代码请看之前的文章,这里只提供解决办法

js部分,重写了设置背景的方法。

主要是 使用scale在x轴和y轴上进行缩放

scaleX: _this.fabricObj.width / img.width,
scaleY: _this.fabricObj.height / img.height,

  1. setBackgroundImg(imgUrl) {
  2. // 创建一个新的 Image 对象
  3. var img = new Image();
  4. // img.crossOrigin = 'Anonymous'; // 设置允许跨域访问
  5. img.src = imgUrl;
  6. // 保存外部环境的引用
  7. var _this = this;
  8. // 在图片加载完成后执行操作
  9. img.onload = function () {
  10. var aspectRatio = img.width / img.height;
  11. var newWidth = 750; // 新的宽度为 750
  12. var newHeight = newWidth / aspectRatio; // 根据宽高比计算新的高度
  13. // 设置 Canvas 的宽度和高度
  14. _this.fabricObj.setWidth(newWidth);
  15. _this.fabricObj.setHeight(newHeight);
  16. // 将背景图片添加到Canvas中
  17. _this.fabricObj.setBackgroundImage(
  18. img.src,
  19. function () {
  20. _this.fabricObj.renderAll();
  21. },
  22. {
  23. scaleX: _this.fabricObj.width / img.width,
  24. scaleY: _this.fabricObj.height / img.height,
  25. crossOrigin: 'anonymous'
  26. }
  27. );
  28. };
  29. },

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/不正经/article/detail/200746?site
推荐阅读
相关标签
  

闽ICP备14008679号