如何使用kCGImagePropertyGIFImageColorMap或创build一个颜色表?

我试图kCGImagePropertyGIFHasGlobalColorMap在Core Graphics中使用一些GIF属性,例如kCGImagePropertyGIFImageColorMapkCGImagePropertyGIFHasGlobalColorMap ( reference )。

我正在创buildGIFanimation,我想看看是否可以通过使用大量的颜色来提高质量。 我只find一个其他的代码示例 ,我不知道它的工作原理。

我试过使用上面链接的几个示例代码,但它似乎并没有工作。 也没有设置kCGImagePropertyGIFHasGlobalColorMap似乎做任何事情。 谢谢

核心graphics不允许设置全局颜色表,只是单个图像GIF文件的本地颜色表。 多图像gif文件需要设置每个图像的单独属性,这意味着当源图像不是它们自己的GIF文件时, kCGImagePropertyGIFImageColorMap将不起作用,并且链接的要点中的代码是错误的。 而不是试图设置一个全局色彩映射,设置你试图串起来的每一个图像的属性,这可以通过使用图像上下文或通过在添加图像时设置图像的属性来使用Core Graphics来操作到图像目的地ref。

如果您仍然对GIF颜色表感到疑惑,那么它们会比giflib库更好的解释,这可能是比Core Graphics更好的方式来生成gif并操纵颜色表。 如果你要去核心graphics路线,仍然想知道如何实例化一个颜色表,一般格式如下:

 // Color tables are arrays of 8-bit bytes from 0 (deepest black) to 255 (brightest white) // with each color's intensity grouped in 3's for a total of 9 values. // The format is interpreted as hex values. const uint8_t colorTable[9] = { 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF }; // { White Bytes }, { Red Bytes }, { Blue Bytes }