UIKit中有NSBitmapImageRep
的模拟效果吗?具体来说,我正在寻找与setPixel:atX:y:
和getPixel:atX:y:
类似的方法。我找到了this技术说明,它确实让我在那里使用了CGImage,但我怎么知道像素的顺序呢?
答案 0 :(得分:3)
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 ) );