如何从图像中获取像素的x,y坐标颜色?

丹尼·福克斯(Danny Fox):

有什么方法可以检查PNG图像的选定点(x,y)是否透明?

布莱恩·尼克尔(Brian Nickel):

根据Jeff的回答,您的第一步将是创建PNG的画布表示。以下内容将创建一个屏幕外画布,该画布的宽度和高度与您的图像相同,并在其上绘制图像。

var img = document.getElementById('my-image');
var canvas = document.createElement('canvas');
canvas.width = img.width;
canvas.height = img.height;
canvas.getContext('2d').drawImage(img, 0, 0, img.width, img.height);

之后,当用户单击时,使用event.offsetXevent.offsetY获取位置。然后可以用来获取像素:

var pixelData = canvas.getContext('2d').getImageData(event.offsetX, event.offsetY, 1, 1).data;

因为您只抓取一个像素,所以pixelData是一个包含四个像素的R,G,B和A值的四项数组。对于Alpha,任何小于255的值都表示某种程度的透明度,0表示完全透明。

这是一个jsFiddle示例:http : //jsfiddle.net/thirtydot/9SEMf/869/为了方便起见,我使用jQuery,但这并不是必需的。

注意: getImageData为了防止数据泄漏,它属于浏览器的同源策略,这意味着如果您用来自其他域的图像或(来自某些域的SVG,但我相信,但某些浏览器可能已经解决了)SVG弄脏画布,则该技术将失败。这可以防止站点为登录的用户提供自定义图像资产并且攻击者想要读取图像以获取信息的情况。您可以通过从同一服务器提供映像或实现跨域资源共享来解决该问题

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何获取图像中像素的x,y(坐标)数组

如何获取Kinect中像素深度的X,Y坐标?

如何从图像中获取像素的颜色?

如何在JLabel中获取图像的X,Y坐标

如何使用 x/y/r 像素坐标裁剪图像?

在Python中从图像中提取每个像素的x,y坐标

获取图像中每个像素的坐标

如何在python中获取图像像素的RGBA颜色值

获取图像中像素的十六进制颜色代码和坐标

如何在Excel电子表格中使用x / y / r像素坐标在Python中裁剪多个图像?

如何根据 X 和 Y 坐标从色轮中获取颜色值?

单击时如何获取图像的X和Y坐标(快速)

使用python获取图像中形状的轮廓(x,y)坐标

Flutter 从 var 中的图像获取像素颜色

获取Pygame中图像的单个像素的颜色

如何通过将鼠标指向图像上的特定点来获取Java中的图像像素坐标?

从图像获取像素的颜色

获取JLabel中具有特定坐标的像素的颜色

如何通过点击地图从Mapviewer获取Mapviewer容器相对于x和y的像素坐标?

Google Maps:在标记点击监听器中获取点击或标记(x,y)像素坐标

获取已在 OpenCV C++ 中的跟踪算法中跟踪的 ROI 的 x 和 y 像素坐标

如何在图像处理中设置x和y坐标。

如何在tilemap中获取瓷砖的x,y坐标位置?

图像上像素(X,Y)的颜色强度[OpenCV / Python]

如何从图像文件> numpy数组>单一RGB颜色的x / y坐标列表转换

如何使用vb.net获取X,Y处像素的颜色

在 LiveCode 中传递图像的 x,y 坐标

使用python PIL获取特定颜色的像素的x,y值

从(x,y)像素坐标获取3D世界坐标