Определение цветового пространства UIImage
Мне интересно, есть ли простой способ получить цветовое пространство изображения (то есть изображение, загруженное в UIImage)? Например, у меня есть изображение TIFF, и я хотел бы иметь возможность определить, использует ли оно цветовое пространство RGB или нет. Есть ли простой способ сделать это без манипулирования данными пикселей? Я знаю, что есть некоторые функции CGColorSpace, но, похоже, ни одна из них не делает этого, просто создает цветовые пространства и манипулирует ими (и гораздо более продвинутыми функциями).
Заранее спасибо.
2 ответа
Вы должны получить цветовое пространство через CGImage. Вы можете сделать это с помощью следующей строки функций / свойств:
@property(nonatomic, readonly) CGImageRef CGImage
CGColorSpaceRef CGImageGetColorSpace (
CGImageRef image
);
Таким образом, чтобы получить цветовое пространство изображения, вы должны сделать:
CGColorSpaceRef colorspace = CGImageGetColorSpace([myUIImage CGImage]);
И, конечно же, обязательно следуйте правилам получения / создания / копирования объектов CG.
Быстрый
Чтобы получить цветовое пространство UIImage:
let colorSpace = myUIImage.cgImage?.colorSpace
Пример кода, который проверяет тип цветового пространства:
if colorSpace == CGColorSpace(name: CGColorSpace.sRGB) && colorSpace != nil {
print("valid sRGB")
}
Полный список типов цветовых пространств см. В документации Apple CGColorSpace «Доступ к системным цветовым пространствам» .