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

canvas绘制图片等比缩放

核心步骤

  • 获取原始图片尺寸
  • 计算缩放比例
    • 根据目标区域尺寸和原始比例计算最小缩放比
  • 计算新尺寸
    新宽度 = 原始宽度 × 缩放比例
    新高度 = 原始高度 × 缩放比例
  • 绘制图片
    使用 drawImage() 方法绘制缩放后的图片

代码实现

// 获取Canvas上下文
const canvas = document.getElementById("myCanvas");
const ctx = canvas.getContext("2d");// 创建图片对象
const img = new Image();
img.src = "your-image.jpg";img.onload = function () {// 1. 获取原始尺寸const originalWidth = img.width;const originalHeight = img.height;// 2. 设置目标区域尺寸(示例:Canvas尺寸)const targetWidth = canvas.width;const targetHeight = canvas.height;// 3. 计算缩放比例(保持比例)const scale = Math.min(targetWidth / originalWidth, targetHeight / originalHeight);// 4. 计算新尺寸const newWidth = originalWidth * scale;const newHeight = originalHeight * scale;// 5. 居中绘制const x = (targetWidth - newWidth) / 2;const y = (targetHeight - newHeight) / 2;// 绘制缩放后的图片ctx.drawImage(img, x, y, newWidth, newHeight);
};

关键参数说明

参数说明
scale取宽度比和高宽比的最小值,确保图片完整显示
newWidth/Height按比例计算后的新尺寸
x, y居中定位坐标(可选)
http://www.dtcms.com/a/345096.html

相关文章:

  • 高边开关+BUCK+MOSFET:48V智能汽车动力链的“黄金三角”
  • Prometheus+Grafana监控mysql
  • AI推理革命:从Sequential Thinking到Agentic AI的演进之路——揭秘大语言模型思维进化的四重奏
  • 【Linux网络编程】Reactor反应堆模式
  • 氙灯市场报告:亚太成增长主力,汽车、医疗、科研多领域需求驱动行业发展
  • 永磁同步电机无速度算法--基于跟踪观测器的脉振正弦注入法
  • 无线数传模块实现:焦化厂四大车与除尘系统无线通讯连锁控制方案案例
  • ComfyUI 原生 REST API 技术文档
  • 视频拼接融合技术:打造全景视界的革命性产品
  • modbus绑定变量,并发送8位数据的办法
  • Vue中的methods 和 computed
  • Linux-Makefile
  • 网络编程6(JVM)
  • 【Redis】哨兵模式和集群模式
  • 红帽认证升级华为openEuler证书活动!
  • 【学习记录】c完整线程池实现
  • 未来已来?AI 预测技术在气象、金融领域的应用现状与风险警示
  • MySQL视图详解:从基础概念到实战案例
  • 人工智能-python-深度学习-软件安装阶段
  • 第2章 cmd命令基础:执行动态链接库(rundll32)
  • 大视协作码垛机器人:定制圆形吸盘破解桶型码垛难题
  • HEVC(H.265)与HVC1的关系及区别
  • 【C初阶】数据在内存中的存储
  • 【LeetCode 热题 100】139. 单词拆分——(解法一)记忆化搜索
  • Vue 插槽(Slots)全解析1
  • 所做过的笔试真题
  • 阿里云RDS MySQL数据归档全攻略:方案选择指南
  • (LeetCode 面试经典 150 题) 124. 二叉树中的最大路径和 (深度优先搜索dfs)
  • 大麦盒子DM4036刷包推荐
  • 停车场道闸的常见形式