我的应用程序有几种方法,部分基于这篇文章。
我需要在某个位置找到颜色的图像可能来自相机、库、应用程序包或在应用程序中生成。我刚刚遇到了频道顺序不同的问题(碰巧不同的是应用程序生成的频道并以 jpeg 格式保存以用于缓存目的)。
所以我的问题是,如何最好使用链接作为起点,我可以确定 CGImage 的颜色顺序?我确定这记录在某处,但在哪里?
使用我称为 +imageDump: 的方法,受这篇文章的启发,我从一张图像中提取了以下信息:
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
从另一个图像中,通道的顺序不同:
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
似乎此信息以某种方式指定了通道顺序,但我不知道如何解释这些常量。还是我看错了?