Bonjour à tous,
( Je code en C++, et j'utilise l'API32 de Windows ).
Je suis en quête d'un algorithme d'indexation de couleurs, l'objectif de mon programme étant de créer des fichiers GIF en fonction de fichiers BMP.
Le principe d'indexation de couleurs permet de réduire la taille du fichier final, les pixels tirant leur couleur de la table d'indexation ( éventuellement placée dans l'en-tête du fichier ).
Pour que l'indexation soit de bonne qualité, on aura mis au point, en amont, un système faisant la moyenne des couleurs présentes dans le BMP ( comment on peut envisager la chose ? ) et les indexant ( mais là je suis perdu ! ).
---
Structure ( grossière ) d'un fichier GIF :
[ Informations sur l'image ( dimensions, etc. ) ]
[ Table d'indexation ( 256 couleurs codées sur 3 octets ) ]
[ Ensemble des pixels, tous codés sur 1 octet, celui-ci définissant la couleur à appeler dans la table ( valeur maximale d'un octet : 255 soit au maximum 256 appels ) ]
---
Mon rogramme traîte un fichier BMP d'où il tire les pixels de couleurs, mais tout devient autrement plus compliqué quand il s'agit d'indexer ces couleurs. A mon niveau, le procédé de compression est au point ( l'algo. LZW est utilisé ), ce qui me pose un réel soucis, c'est de mettre au point l'Algo. d'indexation.
Mes recherches sur le sujet ont abouti à des codes écrits en MFC, autant dire que je n'en ai absolument rien compris ( Est-ce que les MFC découlent vraiment du C ? ). Comme il s'agit pour moi de bien comprendre les choses, je ne veux absolument pas me servir de librairies prévues à cet effet ou autres fonctions préconçues dans ce but.
Alors à votre avis, quelle est la voie à suivre quant à l'élaboration d'un tel code ?
Un grand merci, et un bonjour de Tahiti (d'où je vis) !
Partager