当前位置: 首页 > news >正文

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

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

有问题的canvas画布背景

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

 

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

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

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

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

 setBackgroundImg(imgUrl) {// 创建一个新的 Image 对象var img = new Image();// img.crossOrigin = 'Anonymous'; // 设置允许跨域访问img.src = imgUrl;// 保存外部环境的引用var _this = this;// 在图片加载完成后执行操作img.onload = function () {var aspectRatio = img.width / img.height;var newWidth = 750; // 新的宽度为 750var newHeight = newWidth / aspectRatio; // 根据宽高比计算新的高度// 设置 Canvas 的宽度和高度_this.fabricObj.setWidth(newWidth);_this.fabricObj.setHeight(newHeight);// 将背景图片添加到Canvas中_this.fabricObj.setBackgroundImage(img.src,function () {_this.fabricObj.renderAll();},{scaleX: _this.fabricObj.width / img.width,scaleY: _this.fabricObj.height / img.height,crossOrigin: 'anonymous'});};},

http://www.lryc.cn/news/311223.html

相关文章:

  • 枚举与尺取法(蓝桥杯 c++ 模板 题目 代码 注解)
  • 11、电源管理入门之Regulator驱动
  • 24年证券从业考试注册报名流程详细图解,千万不要错过报名哦!
  • Git入门学习笔记
  • ⭐每天一道leetcode:27.移除元素(简单;vector)
  • 如何处理Android内存泄漏和性能优化
  • 应用方案 | D722 9MHz,轨对轨I/O CMOS运放,低噪声、低电压、低功耗运放,应用广泛
  • 小程序常用样式和组件
  • 《Redis 设计与实现》读书概要
  • Docker之数据卷自定义镜像
  • Docker技术概论(4):Docker CLI 基本用法解析
  • 【JAVA重要知识 | 第五篇】暴打Java8新特性—(Lambda、方法引用、Stream流、函数式接口、Date Time API、Optional类)
  • Docker Swarm全解析:实现微服务高可用与故障转移的秘密武器
  • 编码规范(前端)
  • 【JavaEE进阶】部署Web项目到Linux服务器
  • 就业班 2401--3.1 Linux Day9--文件查找和压缩
  • 「滚雪球学Java」:JDBC(章节汇总)
  • RT-DETR改进RepVGG结构:简单但功能强大的卷积神经网络架构
  • C#进阶高级语法之LINQ :Lambda 表达式
  • react hook: useCallback
  • java面试(jvm)
  • 自动化测试摸索:python+selenium+pytest(持续更新.....)
  • C++惯用法之RAII思想: 资源管理
  • 矢量图是什么,有哪些格式的文件
  • Linux 设置快捷命令
  • SpringCloudFeign远程调用
  • Java中List、Set、Map三种集合之间的区别
  • SpringMVC之DispatcherServlet组件
  • 抢商家、夺用户、比低价,抖音、快手、小红书“奇招尽出”
  • ChatGPT引领的AI面试攻略系列:AI全栈工程师篇