javascript - 如何剪辑从 getImageData() 函数获取的图像?

标签 javascript html canvas html5-canvas

我正在尝试获取源 Canvas 的内容,对其进行剪辑,然后将其绘制到另一个 Canvas 上。即使我的代码在使用 src PNG/new Image() 组合时工作得很好,但当源内容来自另一个 Canvas 时它不会。

代码是:

var imgData = src_ctx.getImageData(x, y, w, h);
dest_ctx.putImageData(imgData, x, y+h);

ctx.beginPath(); // Filled triangle
ctx.moveTo(x1,y1);
ctx.lineTo(x2,y2);
ctx.lineTo(x2,0);
ctx.lineTo(x1,0);               
ctx.clip();

最佳答案

定义裁剪区域后,使用 drawImage 绘制源 Canvas ,而不是设置图像数据。

dest_ctx.beginPath(); // Filled triangle
dest_ctx.moveTo(x1,y1);
dest_ctx.lineTo(x2,y2);
dest_ctx.lineTo(x2,0);
dest_ctx.lineTo(x1,0);               
dest_ctx.clip();

// You can control wich region to draw using all the arguments
// drawImage(image, sx, sy, sWidth, sHeight, dx, dy, dWidth, dHeight)
dest_ctx.drawImage (srcCanvas, x, y);

关于javascript - 如何剪辑从 getImageData() 函数获取的图像?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8620746/

相关文章:

javascript - 显式调用 jquery 更改事件

c# - 无法从 NULL 读取属性 "Patient"

html - 按钮元素中的多行样式文本

delphi - 用Delphi进行不均匀拉伸(stretch)拉伸(stretch)

javascript - 如何使用 Javascript 在 Canvas 中单击某个位置?

javascript - Canvas:逐像素绘制图像和requestAnimationFrame时序

javascript - 为什么不允许以逗号分隔的 var 声明属性?

css - 将html页面分成50%高度的两行

javascript - 如何制作一个计数器来检查用户使用java脚本重新加载网页的次数?

javascript - 实现简单的视差 : Images "jumpy" in Firefox and Safari