Javascript 如何检测SVG区域任意位置的颜色
在SVG区域(不是画布)中,我需要使用javascript确定特定坐标(x,y)位置的颜色。总的来说是这样的:Javascript 如何检测SVG区域任意位置的颜色,javascript,svg,Javascript,Svg,在SVG区域(不是画布)中,我需要使用javascript确定特定坐标(x,y)位置的颜色。总的来说是这样的: getColor (mySvgArea, x, y); 通常情况下,在html中,如果链接被访问过,则会以不同的颜色绘制。当然,在SVG中也可能出现这种情况,而且很早以前就意识到,如果你能弄清楚颜色是什么,那就是一个隐私泄露,为此付出了很多努力 如果你被允许在一个总坐标上阅读颜色,它将重新打开隐私漏洞,因此你永远不会有办法在图像之外阅读 图像方式是将SVG放在标记中,然后将其加载到画
getColor (mySvgArea, x, y);
通常情况下,在html中,如果链接被访问过,则会以不同的颜色绘制。当然,在SVG中也可能出现这种情况,而且很早以前就意识到,如果你能弄清楚颜色是什么,那就是一个隐私泄露,为此付出了很多努力 如果你被允许在一个总坐标上阅读颜色,它将重新打开隐私漏洞,因此你永远不会有办法在图像之外阅读 图像方式是将SVG放在
标记中,然后将其加载到画布中。浏览器可以通过以下两种方式防止隐私泄露:a)污染画布,以便在SVG数据加载到画布(当前为Webkit)后无法读取;b)限制SVG图像功能,以便通过禁用链接着色(Firefox)等功能防止隐私泄露
已经有一个stackoverflow的答案,示例如下。如果您使用Firefox,则可以阅读颜色。非常有趣。谢谢你指出原因。为了使SVG更强大,他们应该从规范中删除链接(很少使用)。SVG需要对渲染的图形进行更细粒度的控制。事实上,我在这方面的研究是为了能够确定任何给定形状的边界。一种交叉点扫描(因为getIntersectionList还没有得到很好的支持)。