préssée en LZW // à rajouter fclose(fptr); return true; }
pour ceux que ca interesse, le reste de ma procédure de sauvergarde de gif est ici : // Fonction écrite par Laurent Minguet
// width : lareur de l'image
// height : hauteur de l'image
// fname : nom du fichier de destination
// image : pointeur vers un tableau contenant pour chaque pixel le numéro de la couleur associée
// palette : pointeur vers un tableau contenant pour chaque couleur les composantes RVB
// indice de la couleur transparente
bool SaveGifFile(long width, long height, char * fname, unsigned char * image, unsigned char * palette, unsigned char c_trans)
{
FILE *fptr;
unsigned long x, y;
long s,ss;
// Ouverture du fichier
if ((fptr = fopen(fname,"wb")) == NULL) { return false; }
// Format GIF
fprintf(fptr,"GIF");
// Version 89a
fprintf(fptr,"89a");
// Block Descripteur logique
// Largeur
s = width;
ss=char(s-long(floor(s/256))*256);s = long(floor(s/256));fprintf(fptr,"%c",ss);
ss=char(s-long(floor(s/256))*256);s = long(floor(s/256));fprintf(fptr,"%c",ss);
// Hauteur
s = height;
ss=char(s-long(floor(s/256))*256);s = long(floor(s/256));fprintf(fptr,"%c",ss);
ss=char(s-long(floor(s/256))*256);s = long(floor(s/256));fprintf(fptr,"%c",ss);
// Indicateur de résolution.
// Bit 7 1=palette de couleur globale disponible.
// Bit 6-4 Profondeur de couleur -1
// Bit 3 Réservé (0)
// Bit 2-0 Nombre de bits/pixel -1 (8 bits car 256 couleurs -> 111)
fprintf(fptr,"%c",135); // 0b10000111
// Couleur de fond (dans la palette)
fprintf(fptr,"%c",c_trans);
// Bit 7 Ordre de classement de la palette globale
// Bit 6-0 Pixel aspect ratio ?
fprintf(fptr,"%c",0); // 0b00000000
// Palette 256 couleurs
for (x=0;x<256*3;x++)
fprintf(fptr,"%c",palette[x]);
// Block Descripteur d'image
// début du block
fprintf(fptr,"%c",0x2C);
//Abscisse X du coin supérieur gauche de l'écran logique.
fprintf(fptr,"%c%c",0, 0);
//Abscisse Y du coin supérieur gauche de l'écran logique.
fprintf(fptr,"%c%c",0, 0);
// Largeur
s = width;
ss=char(s-long(floor(s/256))*256);s = long(floor(s/256));fprintf(fptr,"%c",ss);
ss=char(s-long(floor(s/256))*256);s = long(floor(s/256));fprintf(fptr,"%c",ss);
// Hauteur
s = height;
ss=char(s-long(floor(s/256))*256);s = long(floor(s/256));fprintf(fptr,"%c",ss);
ss=char(s-long(floor(s/256))*256);s = long(floor(s/256));fprintf(fptr,"%c",ss);
// Indicateur.
// Bit 7 1=palette locale disponible
// Bit 6 1=image entrelacée
// Bit 5 ordre de placement de la palette locale.
// Bit 3-4 Réservé (0)
// Bit 0-2 Nombre de bits/pixel -1
fprintf(fptr,"%c",0); // 0b00000000
// Image com
merci d'avance