如何按比例调整画布中的图像大小
How to proportionally resize an image in canvas?
要在HTML5画布中调整加载的图像大小,可以这样做:
var img = new Image();
img.onload = function () {
ctx.drawImage(img, 0, 0, 300, 200); // resizes image to 300px wide, 200px high
}
img.src = 'images/myimage.jpg';
但后来我意识到图像比例不正确。所以我试着只使用一个参数(就像在HTML中一样),但我发现这也不起作用。
如何按比例调整图像大小?
获取img.width
和img.height
,然后根据您要调整的宽度计算比例高度
ctx.drawImage(img, 300, 0, 300, img.height * (300/img.width));
去年我写了一篇关于这个话题的博客文章。你可以在这里阅读。基本上,它提供了一个用适当的宽高比缩放图像的功能。它包括支持横向和纵向方向以及两者之间的大小。您甚至可以选择"信箱"answers"平移扫描(缩放)"模式。
写的时候考虑到了div的定位,但是对于canvas来说很容易理解。
靠近页面底部的是"ScaleImage"函数。这可能就是你想要的。然后你可以这样应用它:
var img = new Image();
img.onload = function () {
var result = ScaleImage(img.width, img.height, 300, 200, true);
ctx.drawImage(img, result.targetleft, result.targettop, result.width, result.height); // resizes image to a target size of 300x200 using letterbox mode
}
img.src = 'images/myimage.jpg';
可以替换result。Targetleft和result。
相关文章:
- 动态生成的css背景图像属性中的重音字符
- 尝试在随机文本和图像脚本中添加样式/更改字体
- 如何在 IE 11 中删除图像映射中的虚线
- 使用 jQuery 从 HTML 中的多个图像元素中删除文件路径
- PhoneGap+JQuery_Mobile:如何通过单击按钮从照片/图像库中获取图像
- Wordpress:如何更改图像标签中的源属性
- 如何在钛(合金)图像视图中使用后置布局
- 如何在图像源中使用字符串代替url
- 使用angularjs交换图像标签中的ng-src属性
- 在图像网址中传递变量
- 如何在羽毛光图像库中添加说明文本
- 获取输入 IMG 类型的选定图片并加载到图像标签中
- 画布图像旋转中的问题
- 防止 JSF 编码 &在图像网址中
- 从Facebook页面访问图像共享中的喜欢数
- JQuery 和 Bootstrap:如何将图像列表中的图像添加到轮播
- 生成随机数并将其放置在图像URL中
- 从我的 Div 背景图像属性中循环 3 个图像
- 图像数据中的更改未反映在模型视图中
- 如何将图像图案设置为图像标记中的图像