获取rawimage的像素点函数_如何获取iphone上图像上像素的RGB值

这篇博客探讨了如何在iPhone应用中实现类似于Photoshop的“吸管”工具,提取UIImage上的像素RGB值。作者指出,不能直接访问UIImage的位图数据,需要通过CGImage获取位图数据,然后利用CoreGraphics提取像素信息。文章提供了多个代码示例,展示如何从CGImage中获取像素数据并转换为RGB值。
摘要由CSDN通过智能技术生成

如何获取iphone上图像上像素的RGB值

我正在编写一个iPhone应用程序,需要实质上实现一些相当于Photoshop中的“吸管”工具,您可以触摸图像上的一个点并捕获相关像素的RGB值以确定和匹配其颜色。获取UIImage是非常简单的部分,但是有没有办法将UIImage数据转换为位图表示形式,在该表示形式中,我可以为给定像素提取此信息?一个工作代码示例将是最受赞赏的,并注意我不关心alpha值。

所属话题:

bitmapimageiphone,

发起人:

baut,

时间:

2018-05-09,

浏览:

386

8 个回复

您不能直接访问UIImage的位图数据。

您需要获取UIImage的CGImage表示。然后从该位图的CFData表示中获取CGImage的数据提供者。确保在完成时释放CFData。

CGImageRef cgImage = [image CGImage];

CGDataProviderRef provider = CGImageGetDataProvider(cgImage);

CFDataRef bitmapData = CGDataProviderCopyData(provider);您可能需要查看CGImage的位图信息以获取像素顺序,图像尺寸等。

ut_et

2018-05-09

为了在我的应用程序中做类似的事情,我创建了一个小屏幕外的CGImageContext,然后将UIImage呈现给它。这使我能够快速提取多个像素。这意味着您可以使用易于解析的格式设置目标位图,并让CoreGraphics在颜色模型或位图格式之间进行转换。

xsit

2018-05-09

拉霍斯的答案为我工作。为了像素数据作为字节数组,我做到了这一点:

UInt8* data = CFDataGetBytePtr(bitmapData);

更多信息:CFDataRef documentation。

另外,请记住包含CoreGraphics.framework

ddolor

2018-05-09

I dont know how to index into image data correctly based on given X,Y cordination. Does anyone know?

pixelPosition =(x +(y *((imagewidth)* BytesPerPixel)));

/ /沥青是不是这个设备的问题,据我所知,可以让零...

//(或者退出数学)。

funde

2018-05-09

更多细节... h2>

我今晚早些时候发布了一个整合,并在本页上发表了一些内容 - 可以在这篇文章的底部找到。然而,我现在正在编辑这篇文章,因为它提供了可写入的数据(但据我所知,所提供的方法)是发布我所建议的(至少对于我的要求,包括修改像素数据)更好的方法通过以前的帖子和在这篇文章的底部提供了对数据的只读引用)。

方法1:可写入的像素信息

我定义了常量

#define RGBA 4

#define RGBA_8_BIT 8 LI></

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值