我有一个包含以下元数据的CGImageSourceRef:
// CGImageSourceCopyMetadataAtIndex
<CGImageMetadata 0x10225ed50> (
exif:SubsecTimeDigitized = 000
exif:ColorSpace = 1
// and more ...
)
// CGImageSourceCopyPropertiesAtIndex
{
ProfileName = "sRGB IEC61966-2.1";
"{Exif}" = {
ColorSpace = 1;
};
// and more ...
} 这里"ColorSpace“是"1”。我见过CGColorSpaceRef的所有构造函数,它们都没有从数字创建颜色空间。
CGColorSpaceCreateWithName(CFStringRef name)有一个名字,不是枚举,只是一堆像kCGColorSpaceDisplayP3这样的硬编码字符串。
如何从这个1神奇数字创建一个CGColorSpace?
发布于 2021-02-12 03:42:26
嗯,目前我使用CoreImage方法,因为它简单快速:
CIImage* ciImage = [CIImage imageWithData:rawData];
CGColorSpaceRef cs = ciImage.colorSpace;如果使用预先分配的字节创建CIImage,则不会产生内存开销。如果没有渲染,例如使用[CIContext render],它也不会有性能开销。
https://stackoverflow.com/questions/65937002
复制相似问题