javascript - 如何检测SVG区域任意位置的颜色

标签 javascript svg

在 SVG 区域(不是 Canvas )内,我需要使用 javascript 确定特定坐标 (x,y) 位置的颜色。总体来说是这样的:

getColor (mySvgArea, x, y);

最佳答案

通常,在 html 中,如果链接已被访问过,则与未访问过的链接会以不同的颜色绘制。当然,这样的事情在 SVG 中也是可能的,而且很早以前就意识到,如果你能弄清楚颜色是什么,那就是隐私泄露,并且在 fixing that 上投入了大量精力。 .

如果您被允许在通用坐标上读取颜色,它将重新导致隐私泄露,因此您将永远无法在图像之外执行此操作。

图像方式是将 SVG 放在 <image> 中标记,然后将其加载到 Canvas 中。浏览器可以通过以下方式防止隐私泄露:a) 污染 Canvas ,这样一旦 SVG 数据加载到 Canvas 中(当前是 Webkit),您就无法从中读取内容;b) 限制 SVG 图像功能,这样它们就不会通过禁用某些东西来泄露隐私就像链接着色 (Firefox)

已经有一个 stackoverflow 答案,示例为 shows copying an SVG into canvas 。如果您使用 Firefox,则可以读取颜色。

关于javascript - 如何检测SVG区域任意位置的颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15960186/

相关文章:

javascript - 模板中的数字总和

javascript - 为什么连接和排序方法表现得很奇怪? 2 本质上相同的方法并不以相同的方式起作用

javascript - 如何识别手绘形状与 SVG 模型相似

javascript - 像 SWF 一样缩放 SVG (Raphael.js)

javascript - 在 JavaScript 中的函数之间传递数组

javascript - 使用函数来划分范围

javascript - 在 Javascript 中将 Controller 传递给 Controller

javascript - D3 map SVG 性能

javascript - 在 Raphael.js 中拖动和旋转一组路径

css - svg 背景 IE 和定位问题