Ответ 1
Core Graphics не позволяет устанавливать глобальную таблицу цветов, а также локальную таблицу цветов для файла GIF с одним изображением. Для файлов изображений с несколькими изображениями требуются индивидуальные свойства каждого изображения, что означает, что kCGImagePropertyGIFImageColorMap
не будет иметь эффекта, если исходные изображения не являются самими файлами GIF, а код в связанный gist является неправильным. Вместо того, чтобы пытаться установить глобальную цветовую карту, задайте свойства каждого из изображений, которые вы пытаетесь объединить, и которые можно манипулировать с помощью Core Graphics с помощью контекста изображения или путем установки свойств изображения при их добавлении к ссылке назначения изображения.
Если вы все еще интересуетесь таблицами цветов GIF, они лучше объясняются библиотекой giflib, которая вероятно, будет намного лучше, чем Core Graphics для генерации gif и манипулирования его цветовой таблицей. Если вы переходите на основной графический маршрут и все еще хотите знать, как создать таблицу цветов, общий формат выглядит следующим образом:
// Color tables are arrays of 8-bit bytes from 0 (deepest black) to 255 (brightest white)
// with each color intensity grouped in 3 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 }