My app has several methods partly based on this article.
Images, where I need to find the color at a location could come from the camera, the library, the app bundle, or generated within the app. I've just run into an issue where the order of the channels is different (it happens that the ones that are different are the ones generated by the app and saved in jpeg format for cache purposes).
So my question is, how, preferably using the link as a starting point, can I determine the color order of a CGImage? I'm sure this is documented somewhere, but where?
Using a method I've called +imageDump:, inspired by this article I extract the following information from one image:
CGImageGetHeight: 120
CGImageGetWidth: 120
CGImageGetColorSpace: <CGColorSpace 0x1c562050> (kCGColorSpaceDeviceRGB)
CGImageGetBitsPerPixel: 32
CGImageGetBitsPerComponent: 8
CGImageGetBytesPerRow: 480
CGImageGetBitmapInfo: 0x00002002
kCGBitmapAlphaInfoMask = YES
kCGBitmapFloatComponents = NO
kCGBitmapByteOrderMask = YES
kCGBitmapByteOrderDefault = NO
kCGBitmapByteOrder16Little = NO
kCGBitmapByteOrder32Little = YES
kCGBitmapByteOrder16Big = YES
kCGBitmapByteOrder32Big = NO
and from another image, with the channels in a different order:
CGImageGetHeight: 120
CGImageGetWidth: 120
CGImageGetColorSpace: <CGColorSpace 0x1c562050> (kCGColorSpaceDeviceRGB)
CGImageGetBitsPerPixel: 32
CGImageGetBitsPerComponent: 8
CGImageGetBytesPerRow: 480
CGImageGetBitmapInfo: 0x00000001
kCGBitmapAlphaInfoMask = YES
kCGBitmapFloatComponents = NO
kCGBitmapByteOrderMask = NO
kCGBitmapByteOrderDefault = NO
kCGBitmapByteOrder16Little = NO
kCGBitmapByteOrder32Little = NO
kCGBitmapByteOrder16Big = NO
kCGBitmapByteOrder32Big = NO
It seems like this information somehow specifies the channel order, but I don't know how to interpret these constants. Or am I looking at the wrong thing?