【发布时间】:2013-09-26 16:47:22
【问题描述】:
我正在开发以下案例。
- 由 JS 创建的 HTML 画布。
- 画布上有一个星形图像(从 alpha=0 背景的 png 加载)和一个菱形图像(也从 alpha=0 背景的 png 加载)。
- 钻石图像正在向星形图像移动。
- 当菱形图像完全在星形图像之后,例如只显示星形图像而菱形图像完全在星形图像之后,alert("Hidden");
- 如果显示多于一个像素的菱形,则不应出现警报。
由于星星背景的alpha值为0,也就是说星星不是一个矩形,所以很难检测星星图片是否完全覆盖了菱形图片。
是否有任何库或方法来检测图像是否被其他图像完全覆盖?
或者,有没有人知道这个算法的名字,以便我在JS中实现?
感谢您的帮助!
【问题讨论】:
-
很抱歉,但要求我们推荐或查找工具、库或最喜欢的场外资源的问题对于 Stack Overflow 来说是题外话,因为它们往往会吸引固执己见的答案和垃圾邮件。相反,请描述问题以及迄今为止为解决该问题所做的工作。
-
只需将画布的内容与仅绘制顶部图像的单独画布进行比较。如果它们包含相同的数据,则只有顶部图像可见
-
@j08691 我将标题从“javascript 库”更改为“javascript 方法”
-
@Ken-AbdiasSoftware 如果有很多图像会不会很慢?有更快的方法吗?
-
除非您事先知道几何形状并且可以进行路径点检查(或者更确切地说检查两条路径之间的交点),否则没有任何更快的方法。您可以提前跟踪对象并将这些多边形用作路径检查的基础。如果这不是一个选项,您将不得不检查像素。您可以通过仅检查对象的一部分来减少像素检查负载,您知道必须隐藏它才能触发的部分。
标签: javascript html image image-processing canvas