1

我有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.

如何CGColorSpace从这个1幻数创建一个?

4

1 回答 1

0

好吧,目前我正在使用CoreImage方法,因为它简单快捷:

CIImage* ciImage = [CIImage imageWithData:rawData];
CGColorSpaceRef cs = ciImage.colorSpace;

CIImage如果使用预分配的字节创建,则没有内存开销。如果不渲染,它也没有性能开销,例如使用[CIContext render].

于 2021-02-11T19:42:26.493 回答