Bonsoir, je fais appel à vous car malgré de nombreuses recherches, je n'arrive pas à résoudre mon problème : Je suis entrain de coder une fonction GIF_Load() qui doit avoir le même rôle que IMG_Load() de SDL mis à part le fait qu'elle doit charger des GIF animés.
Pour cela, j'utilise un tableau de pointeurs sur SDL_Surface (Chacune représentant une image du GIF). Le souci, c'est que la palette de couleurs utilisée est en 8 bits, alors que les données stockées dans une SDL_Surface sont en RVB (Voire en RVBA il me semble). D'après ce que j'ai compris à travers mes recherches, le codage en 8 bits correspond à 3 bits pour le rouge, 3 bits pour le vert, et 2 bits pour le bleu, mais je n'arrive pas à faire la correspondance avec le RVB. Exemple : La couleur de l'arrière-plan de mon GIF vaut F7 en hexadécimal, ce qui donne 11110111 en binaire. Si je sépare par paquets de 3, 3 et 2 bits, j'obtiens :
111 pour le rouge
101 pour le vert
11 pour le bleu
Mais comment passer de 3 à 8 bits ? J'ai essayé en ajoutant des 0 de sorte à obtenir :
00000111 pour le rouge
00000101 pour le vert
00000011 pour le bleu
Mais la couleur obtenue est totalement différente de celle de l'arrière-plan, qui vaut en RVB (D'après Photoshop) :
00001110 pour le rouge
01000101 pour le vert
01110010 pour le bleu
J'ai besoin d'un coup de pouce please
Edit : Je me suis trompé : La couleur de l'arrière-plan n'est pas F7 mais 00 (Offset 0Bh d'après ce site : https://www.gladir.com/LEXIQUE/FICHIERS/Gif.htm)
Partager