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

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.xdnf.cn/news/18425.html

相关文章:

  • Vue2+Vue3前端开发_Day6
  • Linux笔记8——shell编程基础-2
  • 网络实践——Socket编程UDP
  • 视频拼接融合技术:打造全景视界的革命性产品
  • API模型与接口弃用指南:历史、替代方案及开发者应对策略
  • `git mv` 重命名 Git 仓库中的文件夹
  • 多人编程新方式:cpolar 让 OpenHands 远程开发更轻松
  • 20250822在Ubuntu24.04.2下指定以太网卡的IP地址
  • 数据分析专栏记录之 -基础数学与统计知识 2 概率论基础与python
  • 安全帽检测算法如何提升工地安全管理效率
  • 【C++组件】Elasticsearch 安装及使用
  • Seaborn数据可视化实战:Seaborn时间序列可视化入门
  • Logstash_Input插件
  • 偶现型Bug处理方法---用系统方法对抗随机性
  • (附源码)基于SSM的餐饮企业食材采购管理系统的设计与实现
  • 攻防世界—bug
  • 以下是基于图论的归一化切割(Normalized Cut)图像分割工具的完整实现,结合Tkinter界面设计及Python代码示
  • 基于SpringBoot的考研学习交流平台【2026最新】
  • 十年磨一剑!Apache Hive 性能优化演进全史(2013 - )
  • 哈希和字符串哈希
  • 电子基石:硬件工程师的器件手册 (十三) - 电源管理IC:能量供给的艺术
  • Leetcode—1683. 无效的推文【简单】
  • Unity设置UI显示区域
  • 数据分类分级的概念、标准解读及实现路径
  • Spring Boot+Docker+Kubernetes 云原生部署实战指南
  • 网易云音乐歌曲导出缓存为原始音乐文件。低调,低调。。。
  • Java实现快速排序算法
  • Jetson Xavier NX 与 NVIDIA RTX 4070 (12GB)
  • Kafka中zk的作用是什么
  • 【Java后端】【可直接落地的 Redis 分布式锁实现】