2010-06-29 37 views

回答

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)); 
+0

是否有非RGB佈局的可能性?這是我擔心的主要問題,假設我發現每個圖像都是RGB。 – 2010-06-29 15:53:15

+0

是的,如果您不知道色彩空間,請使用CGColorSpaceGetModel。 – drawnonward 2010-07-03 17:23:44