【发布时间】:2014-03-27 09:35:38
【问题描述】:
我有一个容器,上面有一个视频元素和一个遮罩图像,如下所示:
<div id="container">
<img id="mask" src="/images/mask.png" width="1078" height="1508" />
<video autoplay="" id="video"></video>
</div>
正如你们所见,蒙版图像的宽度为 1078 像素,高度为 1508 像素。视频元素也是 1078px 宽,但只有 807px 高(不必更长)。
canvas 元素具有相同的宽度和高度。当我尝试拍摄视频快照并将该快照和蒙版图像的副本绘制到画布时,两个元素都被拉伸到画布边界之外。
var context = canvas.getContext('2d');
// Draw video
context.drawImage(video, 0, 0);
// Get mask image and draw mask
maskObj.src = document.getElementById("mask").src;
context.drawImage(maskObj, 0, 0);
我知道我可以通过drawImage() 函数传递更多参数,但我不知道其他参数的具体用途。 This 文章说您可以将宽度和高度作为整数传递。但如果我执行以下操作:
context.drawImage(video, 0, 0, 1078, 807);
context.drawImage(maskObj, 0, 0, 1078, 1508);
它仍然在画布边界之外绘制元素。 无法真正找出我做错了什么,因此感谢所有帮助。
示例;
【问题讨论】:
-
制作一个工作小提琴
标签: javascript canvas dimensions drawimage