iphone - iPhone 的 NSBitmapImageRep(或 CGImage 的直接像素访问)?

标签 iphone objective-c

在 UIKit 中是否有一个很好的类比 NSBitmapImageRep?具体来说,我正在寻找与 setPixel:atX:y: 类似的方法和 getPixel:atX:y: .我找到了 this technote,它确实让我了解了大部分使用 CGImage 的方法,但我怎么知道像素的顺序是什么?

最佳答案

CGImageGetBitsPerComponent( image );
CGImageGetBitsPerPixel( image );
CGImageGetBytesPerRow( image );
CGImageGetBitmapInfo( image );
CGColorSpaceGetModel( CGImageGetColorSpace( image ) );
CGColorSpaceGetNumberOfComponents( CGImageGetColorSpace( image ) );

使用上面的调用,你可以弄清楚每个像素是如何布局的。 x,y 的每个像素将从:

length = CGImageGetBitsPerPixel(image)/CHAR_BIT;
offset = y*CGImageGetBytesPerRow(image) + x*length;

典型的 32 位 ARGB PNG 可能是:

8 = CGImageGetBitsPerComponent( image );
32 = CGImageGetBitsPerPixel( image );
kCGImageAlphaFirst = CGImageGetBitmapInfo( image );
4 = CGColorSpaceGetNumberOfComponents( CGImageGetColorSpace( image ) );
kCGColorSpaceModelRGB = CGColorSpaceGetNumberOfComponents( CGImageGetColorSpace( image ) );

关于iphone - iPhone 的 NSBitmapImageRep(或 CGImage 的直接像素访问)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3142178/

相关文章:

iphone - 从字符串 '2011-08-16T19:03:21.000Z' 获取日期

ios - 在uipickerview中显示选中的值

objective-c - 在头文件中定义属性与实现文件 objective-c

iphone - 在 IOS SDK 中处理多个本地通知

jquery - 菜单不响应 iPhone 上的媒体查询?

iphone - 在 Objective-C 中获取 php 网站响应

iphone - 将 CGPDFPageRef 转换为整数

iphone - NSUserDefaults 记住 View

ios - Objective c-只有特定的 UILabel 在 UITableView 中被编辑

ios - 无法将 UITableView 添加到 UIView swift