栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

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

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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

基于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.offsetX
event.offsetY
获取位置。然后可以用来获取像素:

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

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

在所有这些中,为了方便起见,我都使用jQuery,但这并不是必需的。

注意:

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



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/635073.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号