Determining the Colorspace of a UIImage
I'm wondering if there's an easy way to get the colorspace o开发者_Go百科f an image (i.e. an image loaded into a UIImage)? For example, I have a TIFF image and I'd like to be able to determine if it uses the RGB colorspace or not. Is there an easy way to do this without manipulating pixel data? I know there's some CGColorSpace functions, but none of them seem to do this, just create colorspaces and manipulate them (and much more advanced functions).
Thanks in advance.
You have to get the color space through CGImage. You can do it with the following line of functions/properties:
@property(nonatomic, readonly) CGImageRef CGImage
CGColorSpaceRef CGImageGetColorSpace (
CGImageRef image
);
So to get the color space of an image, you'd do:
CGColorSpaceRef colorspace = CGImageGetColorSpace([myUIImage CGImage]);
And of course, make sure to follow the get/create/copy rules for CG objects.
Swift
To obtain the color space of a UIImage:
let colorSpace = myUIImage.cgImage?.colorSpace
Example code that checks the color space type:
if colorSpace == CGColorSpace(name: CGColorSpace.sRGB) && colorSpace != nil {
print("valid sRGB")
}
See Apple's CGColorSpace Documentation "Accessing System-Defined Color Spaces" for the complete list of color space types.
精彩评论