49 votes

Comment utiliser kCGImagePropertyGIFImageColorMap ou créer une table de couleurs?

Je suis en train de bricoler avec un couple GIF des propriétés telles que l' kCGImagePropertyGIFImageColorMap et kCGImagePropertyGIFHasGlobalColorMap (référence) dans les Graphiques de Base.

Je suis la création de GIFs animés et j'aimerais voir si je peux améliorer la qualité en jouant avec la quantité de couleurs. J'ai trouvé un autre exemple de code et je ne suis pas sûr qu'il fonctionne.

J'ai essayé à l'aide de quelques exemples de codes ci-dessus, mais il ne semble pas fonctionner. Ni ne la définition de l' kCGImagePropertyGIFHasGlobalColorMap rien faire. Merci

4voto

CodaFi Points 29073

Graphiques de base ne permettent pas l'établissement d'une table de couleur globale, juste un local table de couleurs d'une image unique fichier GIF. Multi-image gif fichiers nécessitent des propriétés individuelles de chaque image, ce qui signifie que l' kCGImagePropertyGIFImageColorMap n'a aucun effet lorsque la source des images ne sont pas eux-mêmes des fichiers GIF, et le code de la liés gist est faux. Au lieu d'essayer de définir une couleur de carte, définissez les propriétés de chacune de vos images que vous essayez de la chaîne, qui peut être manipulé avec des Graphiques de Base en utilisant une image contexte, ou en définissant les propriétés de l'image lorsque vous les ajoutez à l'image de destination réf.

Si vous vous demandez toujours à propos de GIF tables de couleurs, ils sont l'explique mieux que je ne pourrais par la giflib de la bibliothèque, qui sera probablement une bien meilleure avenue de Graphiques de Base pour générer un gif et la manipulation de la table des couleurs. Si vous allez les Graphiques de Base de l'itinéraire et vous souhaitez savoir comment instancier un tableau de couleurs, le format est comme suit:

// 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  }

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X