Section courante

A propos

Section administrative du site

gdImageGifAnimAdd

Ajout d'une image de Gif animé
LibGD

Syntaxe

void gdImageGifAnimAdd(gdImagePtr im, FILE *outFile, int LocalCM, int LeftOfs, int TopOfs, int Delay, int Disposal, gdImagePtr previm);

Paramètre

Nom Description
im Ce paramètre permet d'indiquer l'image à ajouter.
outfile Ce paramètre permet d'indiquer le fichier de sortie FILE* en cours d'écriture.
LocalCM Ce paramètre permet d'indiquer le drapeau. Si 1, utilisez une palette de couleurs locale pour cette image.
LeftOfs Ce paramètre permet d'indiquer le déplacement gauche de l'image dans le cadre.
TopOfs Ce paramètre permet d'indiquer le déplacement supérieur de l'image dans le cadre.
Delay Ce paramètre permet d'indiquer le délai avant la prochaine image (en 1/100 secondes).
Disposal Ce paramètre permet d'indiquer le MODE : Comment traiter cette image lorsque la suivante se charge.
previm Ce paramètre permet d'indiquer NULL ou un pointeur vers l'image précédente écrite.

Retour

Rien

Description

Cette fonction permet d'ajouter une image à une animation GIF existante.

Remarques

Variantes

gdImageGifAnimAddCtx génère ses données via une structure gdIOCtx.

gdImageGifAnimAddPtr génère ses données dans une mémoire tampon qu'il renvoie.

Exemple

  1. {
  2.     gdImagePtr im, im2, im3;
  3.     int black, white, trans;
  4.     FILE *out;
  5.  
  6.     im = gdImageCreate(100, 100);     /* Créer l'image */
  7.     white = gdImageColorAllocate(im, 255, 255, 255); /* Attribuer l'arrière-plan */
  8.     black = gdImageColorAllocate(im, 0, 0, 0); /* Attribuer la couleur du dessin */
  9.     trans = gdImageColorAllocate(im, 1, 1, 1); /* trans vide pour la compression */
  10.     gdImageRectangle(im, 0, 0, 10, 10, black); /* Dessiner un rectangle */
  11.  
  12.     out = fopen("anim.gif", "wb"); /* Ouvrir le fichier de sortie en mode binaire */
  13.     gdImageGifAnimBegin(im, out, 1, 3); /* Écrire un GIF hdr, une carte clr globale, des boucles */
  14.     /* Écrire la première image. Pas de palette de couleurs locale. Délai = 1 s */
  15.     gdImageGifAnimAdd(im, out, 0, 0, 0, 100, 1, NULL);
  16.  
  17.     /* construire le deuxième cadre */
  18.     im2 = gdImageCreate(100, 100);
  19.     (void)gdImageColorAllocate(im2, 255, 255, 255); /* Fond blanc */
  20.     gdImagePaletteCopy (im2, im);  /* Assurez-vous que la palette est identique */
  21.     gdImageRectangle(im2, 0, 0, 15, 15, black);    /* Dessine quelque chose */
  22.     /* Autoriser la compression d'animation avec des pixels transparents */
  23.     gdImageColorTransparent (im2, trans);
  24.     gdImageGifAnimAdd(im2, out, 0, 0, 0, 100, 1, im);  /* Ajouter un deuxième cadre */
  25.  
  26.     /* construire le troisième cadre */
  27.     im3 = gdImageCreate(100, 100);
  28.     (void)gdImageColorAllocate(im3, 255, 255, 255); /* fond blanc */
  29.     gdImagePaletteCopy (im3, im); /* Assurez-vous que la palette est identique */
  30.     gdImageRectangle(im3, 0, 0, 15, 20, black); /* Dessine quelque chose */
  31.     /* Autoriser la compression d'animation avec des pixels transparents */
  32.     gdImageColorTransparent (im3, trans);
  33.     /* Ajoutez le troisième cadre en le compressant par rapport au deuxième */
  34.     gdImageGifAnimAdd(im3, out, 0, 0, 0, 100, 1, im2);
  35.     gdImageGifAnimEnd(out);  /* Marqueur de fin, identique à putc(';', out); */
  36.     fclose(out); /* Ferme le fichier */
  37.  
  38.     /* Détruire les images */
  39.     gdImageDestroy(im);
  40.     gdImageDestroy(im2);
  41.     gdImageDestroy(im3);
  42. }


Dernière mise à jour : Mercredi, le 29 Janvier 2025