HTML5 Canvas标签与JavaScript的getImageData()函数相关联,其返回值是一个包含封闭像素的矩形。
但是我需要从原始画布中获取一个三角形的图像,由我选择的点包围。
有人知道如何从HTML5 Canvas获取三角形形状的图像吗?
HTML5 Canvas标签与JavaScript的getImageData()函数相关联,其返回值是一个包含封闭像素的矩形。
但是我需要从原始画布中获取一个三角形的图像,由我选择的点包围。
有人知道如何从HTML5 Canvas获取三角形形状的图像吗?
getImageData()
无法获得非矩形形状。但是,如果您需要该功能,则可以像这样进行剪裁(clip)(JS Lint Example)。var img1 = new Image();
img1.onload = function(){
var w = img1.width
var h = img1.height
ctx.drawImage(img1,0,0);
// Create a circular clipping path
ctx.translate(w / 2, 1.5 * h);
ctx.beginPath();
ctx.arc(0,0,100,0,Math.PI*2,true);
ctx.clip();
ctx.drawImage(img1,-w / 2,-150);
}
img1.src = "foobar.jpg";
不行。
根据您要做什么,相反地,只需获取所有点的并集的最小矩形,并仅使用您关心的像素的imageData
。
换句话说,如果您的三角形在(50,50),(100,100)和(0,100)处有点,则从(0,50)获取一个宽度为100,高度为50的矩形。然后只使用您关心的像素的imagedata。
如果您真的想要一个三角形形状的图像,那么这些不存在。
我基本上从不涉及任何形式的图像处理,因此无法提供具体建议,但您可能只需将不需要的部分涂成透明色,然后复制矩形。
也许可以搜索路径、剪辑区域、填充等相关内容。