如何获取UIImage中特定颜色的位置?

3
我想获取UIImage中颜色与指定颜色匹配的像素的位置。
例如,我想找到此颜色的像素位置(x,y):[UIColor colorWithRed:255 green:0 blue:0 alpha:1]
CGPoint point = getFirstPixelOfColor([UIColor colorWithRed:255 green:0 blue:0 alpha:1].CGColor);

你需要编写一些代码来实现这个,可以从https://dev59.com/zXVC5IYBdhLWcg3w7Vxq开始。 - Tarek Hallak
我想要找到与指定颜色匹配的点,但不要寻找指定点的颜色。 - Suge
请阅读下面 @jano 的评论。 - Tarek Hallak
1个回答

2
UIImage-Utils添加到您的项目中。然后像这样获取x,y的颜色:
CGFloat imageWidth = image.size.width;
NSData *imageData = [UIImage bytesFromImage:image]
Byte *bytes = (Byte *)imageData.bytes;
CGFloat red    = bytes[redOffset   (x, y, imageWidth)] / 255.0f;
CGFloat green  = bytes[greenOffset (x, y, imageWidth)] / 255.0f;
CGFloat blue   = bytes[blueOffset  (x, y, imageWidth)] / 255.0f;
UIColor *color = [UIColor colorWithRed:red green:green blue:blue alpha:1.0f];

将与您要查找的颜色相匹配的颜色的x,y存储起来。对图像中的每个x,y重复此操作。


我想找到与我要找的颜色匹配的点,但不是找到指定点的颜色。 - Suge
如果你想找到一个给定颜色的位置,你必须迭代所有的位置,提取每个位置的颜色,并查看它是否与你要查找的颜色匹配。没有任何API可以为你完成这项工作。 - Jano
你的回答对我非常有帮助。非常感谢! - Sergey Mell

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接