canvas - 是否可以在通过 toDataURL 另存为文件之前修剪画布图像的某些部分?
问题描述
我正在将画布保存为网页中的图像。我曾经html2canvas
得到那幅画布(但我认为这并不重要)
一切都很完美,但图像的布局。
我需要像这样修剪图像:
有什么简单的方法可以做到这一点吗?例如这样的:
canvas.trim(0,15,canvas.width-30,canvas.height);
顺便说一句,我想用纯 JavaScript 来做到这一点。
感谢您提供任何提示。
解决方案
是的,你可以这样做,这是我的做法:
<script src="https://html2canvas.hertzen.com/dist/html2canvas.min.js"></script>
<img id="img" src="https://i.ytimg.com/vi/LRVsxe5OJVY/maxresdefault.jpg">
<script>
function saveMask() {
var element = document.getElementById('img');
html2canvas(element, {allowTaint: true}).then(h2c => {
var canvas = document.createElement("canvas");
canvas.height = 170;
canvas.width = element.width - 300;
var ctx = canvas.getContext('2d')
ctx.drawImage(h2c, -150, 0);
document.body.appendChild(canvas);
element.parentNode.removeChild(element);
});
}
setTimeout(saveMask, 2000);
</script>
推荐阅读
- git - git 添加所有文件,除了(太)大文件
- node.js - 进行 API 调用和数据库查询会导致瓶颈吗?Node.js 和 MongoDB
- vbscript - 如何为用户“隐藏”或“重命名”页面名称/位置/url,但仍允许外部站点通过 HTTP_REFERER 正确读取真实 url
- .net-core - 当我在中间件中覆盖响应正文时,为什么没有调整响应正文的大小?
- javascript - 角色分配机器人有时不会删除角色
- ssl - 为什么连续数据包中相同数据的 TLS 对称加密不同?
- knex.js - 带有 Sqlite 的 Knex 是否需要销毁才能运行多个查询?
- blazor - 检测授权何时完成
- r - 如何在交互图中的各个方面注释文本(`ggplot2`;`interactions`)?
- redirect - 将网站从 www 和非 www 重定向到 https