读取图像像素
Read image pixels
是否可以读取画布A中图像的像素并在画布B上创建像素?我想在画布B上只在图像像素为绿色的地方创建新的像素。例如,如果图像的像素(120,45)是绿色的,我需要在画布B中创建一个绿色像素(120.45)
您可以使用画布ImageData来获取每个像素的颜色值。功能:
context.getImageData(left, top, width, height);
返回一个ImageData对象,该对象由以下属性组成:
- 宽度
- 高度
- 数据(CanvasPixelArray)
CanvasPixelArray
包含所有像素的RGBA值,从左上角开始,一直到右下角。换句话说,它是一个包含4*width*height
个条目的数组。
使用它,您可以开始循环遍历每个像素(每个像素+=4
个条目),并检查RGBA值。如果它们与您想要的特定值(即绿色)匹配,则将该值复制到画布B中,然后通过修改新创建的ImageData对象来创建画布B。
您可以使用创建一个新的空ImageData对象
context.createImageData(cssWidth, cssHeight)
请注意,您需要知道识别"绿色"或定义特定条件的特定RGBA值,即,如果RGBA的G值为>= 150
,则为"绿色"。
还要注意的是,您无法获得来源之外已被污染资源的ImageData
。也就是说,如果你在画布上绘制了一个不安全的CORS图像,你将无法再从画布中检索ImageData
,就像你不能使用toDataURL
一样。
相关文章:
- 点击(右键点击)使用传单地图库获取图像覆盖的像素坐标
- 画布:逐像素绘制图像并请求动画帧计时
- 获取图像的平均外部像素颜色
- 使用回调获取图像像素数据
- ExtJS:“图像”类型的精灵:如何更改像素
- 从 JavaScript 中的图像中读取像素数据会返回半透明像素的意外结果
- 如何在Imgareaselect中选择图像根据像素进行选择
- 在图像像素加载时提交表单
- 使用像素检测后无法拖动Kinetic.JS图像
- 在CSS中按半像素移动的图像插值
- 裁剪后的图像大于 coppit.js 中以像素为单位的内在大小
- 将跟踪像素添加到 jQuery 图像轮播中的每个图像
- Javascript - 如何使用基于站点像素颜色的画布创建图像
- 如何将画布图像数据转换为具有适当 x,y 的每像素文本值数组
- HTML/javascript 获取(和设置)像素 - 远程图像
- 在 JavaScript 画布中获取图像的颜色像素
- 如何将图像像素转换为纬度和液化天然气中的相同位置以供谷歌地图使用
- 图像的模糊/像素化预加载
- HTML5,在加载时将像素渲染为图像,以加快绘制时间
- 获取图像的第一个像素颜色(JS/jQuery)