Javascript 检查画布上的透明图像是否已被单击
Javascript check if transparent image on canvas has been clicked
我有一块画布,我画了一个透明的图像,并且有一个类似多边形的形状。现在我需要检查该图像是否已被单击。
我有电线{X:30,Y:20,w:100,高:100}
我可以检查一个框或圆圈单击,但如果它像多边形一样刚性怎么办,是否有像素单击测试或凸算法(但我不想指定边缘)?
谢谢。
一种解决方案是使用辅助画布实现像素检测,以用作地图。
- 将形状绘制到场景画布上。
- 在第二个画布上绘制确切的形状,但将颜色设置为 rgb(0,0,0)。
- 将该颜色存储为某种地图中的参考,以参考您的第一个"形状"
例如
var pixelMap = {
'000' : 'rectangle 1',
'001' : 'rectangle 2'
};
每次在画布上绘制新形状时,将 rgb 增加 1。除非您有超过 1670 万个形状 (256^3),否则此方法就足够了。
下面是一个示例实现: https://jsfiddle.net/mikeschultz/nbtnxpf2/
相关文章:
- 是否可以仅通过jQuery将图像替换为用户动态选择的另一个图像
- 如何检查图像是否已加载
- 检测图像URL是否已损坏JQUERY
- JavaScript:是否可以将图像/信息附加到数组项
- 在检索数据时是否可以停止图像加载请求
- 是否可以在jquery中使用拖动滑块在4个图像之间滑动
- HTML/JavaScript拖动&Drop-是否可以使重影图像*NOT*看起来'冲洗掉'
- Javascript:检测文件读取器中是否有图像
- Javascript检查图像是否在数组中
- 是否可以创建一个画布来提取图像数据,而无需实际渲染画布
- fabric.js:使用 Image.set() 调整图像大小是否会降低图像质量
- 交换 img src 或显示/隐藏多个图像是否更快
- 检测 jpg 图像是否正确加载
- jquery .width(value) 是否调整容器内图像的大小
- 动态图像加载是否会减少服务器过载
- jQuery或Javascript检查是否加载了图像
- 检查图像是否正确加载了Quit
- 有没有一种方法可以判断图像src是否在javascript内部返回null
- 当只给定宽度或高度时,是否所有浏览器都按比例缩放图像
- 是否可以在生成器中为图像添加权重