2009-07-23 10 views
0

J'essaie de sortir une image TrueColor en utilisant GD (en particulier bgd.dll) à partir d'un programme C++ sous windows. Les API (ou au moins les exemples) semblent suggérer que la plage des arguments RGB entiers pour gdResolveColor s'étend sur les valeurs 0-255. Est-ce correct?GD Image library: Plage d'arguments de composant couleur pour les images TrueColor

J'ai expérimenté avec des valeurs plus élevées et obtenu des résultats étranges, mais cela pourrait bien être due à mon propre manque de compréhension.

Répondre

1

C'est exact. La couleur vraie utilise un octet pour chaque composant de couleur (rouge, vert et bleu). La plage d'un octet est comprise entre 0 et 255, d'où la plage indiquée dans la documentation GD. Ainsi, 16,777,216 (2^24 ou 256^3) différentes couleurs peuvent être spécifiées en utilisant ces 3 octets (24 bits).

Je ne sais pas comment GD gère les entrées invalides (c'est-à-dire un composant de couleur supérieur à 255). Il masquera probablement l'entrée et vous vous retrouverez avec la valeur que vous avez soumise modulo 255.

+1

Ce fut moi qui a mélangé mes permutations et combinaisons. – DuncanACoulter