首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >图像上条的rgba值

图像上条的rgba值
EN

Stack Overflow用户
提问于 2015-03-03 02:03:23
回答 3查看 604关注 0票数 0

我在一个有两种图像类型的网站上工作。

图像类型1的顶部是all white space

图像类型2的在顶部至少有一个像素的非空白

我想知道是否有一种方法来检测图像是否在图像的第一个完全宽度(高度为1px)的任何地方都有空白。

图像类型1

图像2型

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2015-03-03 03:34:36

因为您使用的是画布元素,所以可以利用.getImageData()函数从画布元素中获取RGBA数据。我不知道您是打算在服务器端还是在JS中实现这个逻辑,所以我只需要获取一个示例canvas对象来给我的示例提供一些上下文。

代码语言:javascript
运行
复制
    canvas = document.getElementsByTagName('canvas');
    // returns array of DOM objects [<canvas width=640 height=480>]

现在我们选择使用它的第一个图像并获取它的画布数据。

代码语言:javascript
运行
复制
    context = canvas[0].getContext('2d');
    // returns an ImageData object that looks like this:
    // CanvasRenderingContext2D {textBaseline: "alphabetic", textAlign: "start", font: "10px sans-serif", lineDashOffset: 0, miterLimit: 10...}

要从画布的选定部分获取rgba数据,请设置希望从哪里开始的x,y坐标、px中的宽度(在我们的示例中为640)和高度(1 px,根据您的规格)。例:context.getImageData(x, y, w, h).data

代码语言:javascript
运行
复制
    rgba = context.getImageData(1, 1, 640, 1).data
    // returns ImageData object from Uint8ClampedArray[2560]

变量rgba存储图像顶部第一行中每个像素的R、G、B、A值。也就是说,red = rgba[0]green = rgba[1]blue = rgba[2]alpha = rgba[3] 用于第一个像素。然后,rgba[4]是第二个像素的红色值,并且模式重复。

本质上,只要R、G、B、A值不是255,您就需要一个存储nonWhite = false并将其更改为true的变量。我将把实现逻辑的其余部分留给您,但我希望这是一个良好的起点。

票数 2
EN

Stack Overflow用户

发布于 2015-03-03 02:25:30

我会考虑使用ImageMagick来比较某些坐标下的像素RBG值,这可能是一种为您工作的方法。

票数 1
EN

Stack Overflow用户

发布于 2015-03-03 02:16:19

你想在这里做什么?这似乎不是一种理想的方法。

如果您可以访问代码,您只需将顶部为白色的图像赋予class=“白顶”或类似的内容,然后相应地进行编辑。

希望这能有所帮助!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28822860

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档