我想知道是否有一种简单的方法来获取图像的色彩空间(即图像加载到UIImage中)?例如,我有一个TIFF图像,我希望能够确定它是否使用RGB颜色空间。有没有一种简单的方法可以在不操纵像素数据的情况下完成我知道有一些CGColorSpace函数,但它们似乎都没有这样做,只是创建颜色空间并操纵它们(以及更高级的函数)。
提前致谢。
答案 0 :(得分:13)
你必须通过CGImage获得色彩空间。您可以使用以下一行函数/属性来执行此操作:
@property(nonatomic, readonly) CGImageRef CGImage
CGColorSpaceRef CGImageGetColorSpace (
CGImageRef image
);
因此,要获得图像的色彩空间,请执行以下操作:
CGColorSpaceRef colorspace = CGImageGetColorSpace([myUIImage CGImage]);
当然,请确保遵循CG对象的get / create / copy规则。
答案 1 :(得分:0)
迅捷
获取 UIImage 的色彩空间:
let colorSpace = myUIImage.cgImage?.colorSpace
检查颜色空间类型的示例代码:
if colorSpace == CGColorSpace(name: CGColorSpace.sRGB) && colorSpace != nil {
print("valid sRGB")
}
有关色彩空间类型的完整列表,请参阅 Apple's CGColorSpace Documentation "Accessing System-Defined Color Spaces"。