Section courante

A propos

Section administrative du site

 Langage  Elément  Tutoriel  Aide 
ABAP/4
Ada
Assembleur
Assembly & bytecode
ASP (Active Server Pages)
Basic
C
C++
C# (C Sharp)
Cobol
ColdFusion
Fortran
HTML
Java
JavaScript
LISP
Logo
LotusScript
Oberon
Pascal
Perl
PHP
PL/1
Prolog
Python
Rebol
REXX
Ruby
Rust
SAS
NoSQL
SQL
Swift
X++ (Axapta)
GNAT
SMALLAda
VHDL
Assembleur 370
Assembleur 1802
Assembleur 4004
Assembleur 6502
Assembleur 6800
Assembleur 68000
Assembleur 8080 et 8085
Assembleur 8089
Assembleur 80x86
Assembleur AGC4
Assembleur ARM
Assembleur DPS 8000
Assembleur i860
Assembleur Itanium
Assembleur MIPS
Assembleur PDP-11
Assembleur PowerPC
Assembleur RISC-V
Assembleur SPARC
Assembleur SuperH
Assembleur UNIVAC I
Assembleur VAX
Assembleur Z80
Assembleur Z8000
Assembleur z/Architecture
ASSEMBLER/MONITOR 64
Micol Assembler
GFA Assembler
A86
MASM (Macro Assembler)
TASM (Turbo Assembler)
CIL
Jasmin
LLVM
MSIL
Parrot
P-Code (PCode)
SWEET16
G-Pascal
ASP 1.0
ASP 2.0
ASP 3.0
ASP.NET
ASP.NET Core
ABasiC (Amiga)
Adam SmartBASIC
Altair BASIC
AmigaBASIC (Amiga)
AMOS Basic (Amiga)
Atari Basic (Atari 400, 600 XL, 800, 800XL)
Basic Apple II (Integer BASIC/APPLESOFT)
Basic Commodore 64 (CBM-BASIC)
Basic Commodore 128 (BASIC 7.0)
Basic Commodore VIC-20 (CBM-BASIC 2.0)
Basic Coco 1 (Color Basic)
Basic Coco 2 (Extended Color Basic)
Basic Coco 3 (Extended Color Basic 2.0)
BASICA (PC DOS)
Basic Pro
BBC BASIC
Blitz BASIC (Amiga)
DarkBASIC
Dartmouth BASIC
GFA-Basic (Atari ST/Amiga)
GWBASIC (MS-DOS)
Liberty BASIC
Locomotive BASIC (Amstrad CPC)
MSX-Basic
Omikron Basic (Atari ST)
Oric Extended Basic
Power Basic
Quick Basic/QBasic (MS-DOS)
Sinclair BASIC (ZX80, ZX81, ZX Spectrum)
ST BASIC (Atari ST)
Turbo Basic
Vintage BASIC
VBScript
Visual Basic (VB)
Visual Basic .NET (VB .NET)
Visual Basic pour DOS
Yabasic
BeckerBASIC
SIMONS' BASIC
Basic09 d'OS-9
Disk Extended Color Basic
Basic09 d'OS-9
Disk Extended Color Basic
Access
Excel
Visual Basic pour Windows
Visual Basic .NET pour Windows
C Shell Unix (csh)
C pour Amiga
C pour Atari ST
C pour DOS
C pour Falcon030
C pour GEMDOS (Atari ST)
C pour Linux
C pour PowerTV OS
C pour OS/2
C pour Unix
C pour Windows
Aztec C
CoCo-C
GNU C
HiSoft C
IBM C/2
Introl-C
Lattice C
Microsoft C
MinGW C
MSX-C
Open Watcom C
OS-9 C Compiler
Pure C
Quick C
Turbo C
HiSoft C for Atari ST
HiSoft C for CP/M (Amstrad CPC)
C++ pour OS/2
C++ pour Windows
Borland C++
C++Builder
IBM VisualAge C++
Intel C++
MinGW C++
Open Watcom C++
Symantec C++
Turbo C++
Visual C++
Visual C++ .NET
Watcom C++
Zortech C++
C# (C Sharp) pour Windows
Apple III Cobol
Microsoft Cobol
BlueDragon
Lucee
OpenBD
Railo
Smith Project
Microsoft Fortran
WATFOR-77
CSS
FBML
Open Graph
SVG
XML
XSL/XSLT
LESS
SASS
GCJ (GNU)
JSP
Jython
Visual J++
Node.js
TypeScript
AutoLISP
ACSLogo
LotusScript pour Windows
Amiga Oberon
Oberon .NET
Apple Pascal
Delphi/Kylix/Lazarus
Free Pascal
GNU Pascal
HighSpeed Pascal
IBM Personal Computer Pascal
Lisa Pascal
Maxon Pascal
MPW Pascal
OS-9 Pascal
OSS Personal Pascal
Pascal-86
Pascal du Cray Research
Pascal/VS
Pascal-XT
PURE Pascal
QuickPascal
RemObjets Chrome
Sun Pascal
THINK Pascal
Tiny Pascal (TRS-80)
Turbo Pascal
UCSD Pascal
VAX Pascal
Virtual Pascal
Turbo Pascal for CP/M-80
Turbo Pascal for DOS
Turbo Pascal for Macintosh
Turbo Pascal for Windows
CodeIgniter (Cadre d'application)
Drupal (Projet)
Joomla! (Projet)
Phalanger (PHP .NET)
phpBB (Projet)
Smarty (balise)
Twig (balise)
Symfony (Cadre d'application)
WordPress (Projet)
Zend (Cadre d'application)
PL360
PL/M-80
PL/M-86
Turbo Prolog
CPython
IronPython
Jython
PyPy
AREXX
Regina REXX
JMP
Btrieve
Cassandra
Clipper
CouchDB
dBASE
Hbase
Hypertable
MongoDB
Redis
Access
BigQuery
DB2
H2
Interbase
MySQL
Oracle
PostgreSQL
SAP HANA
SQL Server
Sybase
U-SQL
Introduction
Les fichiers d'entête de bibliothèque
Les fichiers de code source
Référence des fonctions
Les premiers pas
Les formats d'image
La quantification des couleurs
Le recadrage d'image
Le rendu des polices de caractères FreeType dans LibGD
Les filtres d'image
Polices de caractères intégrées
Les matrices
Les transformations
Les entrées/sorties AVIF
Les entrées/sorties BMP
Les entrées/sorties GD
Les entrées/sorties GD2
Les entrées GIF
Les sorties GIF
Les entrées/sorties HEIF
Les entrées/sorties JPEG
Les entrées/sorties PNG
Les entrées TGA
Les entrées/sorties TIFF
Les entrées/sorties WBMP
Les entrées/sorties WebP
Les entrées/sorties XBM
Les entrées XPM
Police de caractères géante
Grande police de caractères
Police de caractères moyennement grasse
Petite police de caractères
Très petite police de caractères
Préface
Notes légales
Dictionnaire
Recherche

Les sorties GIF

Le LibGD offre des fonctionnalités robustes pour produire des images au format GIF, un format d'image couramment utilisé pour des animations simples ou des graphiques statiques avec une palette de couleurs limitée. Grâce aux fonctions de sortie GIF, LibGD permet aux développeurs de convertir leurs images internes en un format compressé et largement compatible avec les navigateurs Web, les logiciels de traitement d'images, et diverses applications. Cela rend la bibliothèque très utile pour générer dynamiquement des images GIF adaptées aux besoins du web ou d'autres contextes logiciels.

La fonction principale utilisée pour la sortie GIF est gdImageGif, écrivant l'image LibGD fournie dans un fichier au format GIF. Cette fonction est simple à utiliser et nécessite un fichier ouvert en écriture pour y écrire les données de l'image. En interne, LibGD prend en charge la compression et le traitement nécessaires pour convertir les données d'image internes (truecolor ou palette) en un fichier GIF valide. Cette méthode est idéale pour générer des fichiers GIF prêts à l'emploi pour le stockage ou la distribution.

Pour plus de flexibilité, LibGD propose également des fonctions comme gdImageGifPtr et gdImageGifCtx. gdImageGifPtr permet de générer une image GIF directement en mémoire, en renvoyant un pointeur vers les données du fichier GIF généré et sa taille. Cela est particulièrement utile dans les applications où les images sont transmises directement via un réseau ou intégrées dans une autre structure de données, sans passer par un fichier intermédiaire. D'autre part, gdImageGifCtx utilise un contexte d'entrée/sortie abstrait (gdIOCtx) pour permettre l'écriture des données GIF dans des flux ou des systèmes personnalisés.

Enfin, les fonctionnalités de sortie GIF de LibGD prennent également en charge la gestion des images interlacées et des couleurs transparentes, ce qui offre une personnalisation accrue lors de la génération des images. La compatibilité avec des concepts comme la transparence rend LibGD encore plus utile pour les graphiques Web modernes. En résumé, les fonctions de sortie GIF de LibGD sont conçues pour répondre à une variété de scénarios, allant de la simple génération de fichiers statiques à des cas d'utilisation plus avancés où les images doivent être manipulées ou distribuées de manière dynamique.

Les fonctions

Voici les fonctions proposé par LibGD pour les sorties GIF :

Nom Description
gdImageGifPtr Identique à gdImageGif, sauf qu'elle retourne un pointeur vers une zone mémoire contenant les données GIF.
gdImageGif gdImageGif écrit l'image spécifiée dans le fichier désigné au format GIF.
gdImageGifCtx Écrit une image GIF via un gdIOCtx.
gdImageGifAnimBeginPtr Semblable à gdImageGifAnimBegin, sauf qu'elle écrit les données dans un tampon mémoire.
gdImageGifAnimBegin Cette fonction doit être appelée en premier lors de la création d'une animation GIF.
gdImageGifAnimBeginCtx Semblable à gdImageGifAnimBegin, sauf qu'elle écrit les données via un gdIOCtx.
gdImageGifAnimAddPtr Similaire à gdImageGifAnimAdd (qui contient plus d'informations), sauf qu'elle stocke les données à écrire en mémoire et retourne un pointeur vers celles-ci.
gdImageGifAnimAdd Cette fonction écrit des images d'animation GIF comme des frames dans une animation GIF initialisée avec gdImageGifAnimBegin.
gdImageGifAnimAddCtx Ajoute une frame d'animation via un gdIOCtxPtr.
gdImageGifAnimEnd Termine correctement le fichier GIF.
gdImageGifAnimEndPtr Semblable à gdImageGifAnimEnd (contenant plus d'informations), sauf qu'elle stocke les données à écrire en mémoire et retourne un pointeur vers celles-ci.
gdImageGifAnimEndCtx Similaire à gdImageGifAnimEnd, mais écrit ses données via un gdIOCtx.

gdImageGifPtr

void * gdImageGifPtr(gdImagePtr im, int *size);

Identique à gdImageGif sauf qu'il renvoie un pointeur vers une zone mémoire contenant les données GIF. Cette mémoire doit être libérée par l'appelant lorsqu'elle n'est plus nécessaire.

L'appelant doit appeler gdFree, et non free(). En effet, il n'est pas garanti que LibGD utilisera la même implémentation de malloc, free,... que votre programme.

Le paramètre «size» reçoit la taille totale du bloc de mémoire.

Paramètre

Nom Description
im Ce paramètre permet d'indiquer l'image à écrire.
size Ce paramètre permet d'indiquer la taille de la sortie de l'image résultante.

Retour

Valeur Description
Pointeur Un pointeur vers les données GIF ou NULL si une erreur s'est produite.

gdImageGif

void gdImageGif(gdImagePtr im, FILE *outFile);

gdImageGif génère l'image spécifiée dans le fichier spécifié au format GIF. Le fichier doit être ouvert pour l'écriture binaire. (Sous MS-DOS et toutes les versions de Windows, il est important d'utiliser «wb» plutôt que simplement «w» comme mode lors de l'ouverture du fichier ; sous Unix, il n'y a aucune pénalité pour cela). gdImageGif ne ferme pas le fichier ; votre code doit le faire.

Le format GIF ne prend pas en charge les couleurs vraies ; les images GIF peuvent contenir un maximum de 256 couleurs. Si l'image à écrire est une image en couleurs vraies, comme celles créées avec gdImageCreateTrueColor ou chargées à partir d'un fichier image JPEG ou PNG en couleurs vraies, une image temporaire basée sur une palette sera automatiquement créée en interne à l'aide de la fonction gdImageCreatePaletteFromTrueColor. Les pixels de l'image d'origine ne sont pas modifiés. Cette conversion produit des palettes de haute qualité mais nécessite un peu de temps de microprocesseur. Si vous convertissez régulièrement des couleurs vraies en palette de cette manière, vous devriez envisager de créer votre image en tant qu'image basée sur une palette en premier lieu.

Variantes

Paramètre

Nom Description
im Ce paramètre permet d'indiquer l'image à écrire.
outFile Ce paramètre permet d'indiquer le pointeur FILE dans lequel écrire l'image.

Retour

Rien

Exemple

  1. gdImagePtr im;
  2. int black, white;
  3. FILE *out;
  4. /* Créer l'image */
  5. im = gdImageCreate(100, 100);
  6. /* Attribuer l'arrière-plan */
  7. white = gdImageColorAllocate(im, 255, 255, 255);
  8. /* Attribuer la couleur du dessin */
  9. black = gdImageColorAllocate(im, 0, 0, 0);
  10. /* Dessiner un rectangle */
  11. gdImageRectangle(im, 0, 0, 99, 99, black);
  12. /* Ouvrir le fichier de sortie en mode binaire */
  13. out = fopen("rect.gif", "wb");
  14. /* Écrire un GIF */
  15. gdImageGif(im, out);
  16. /* Fermer le fichier */
  17. fclose(out);
  18. /* Détruire l'image */
  19. gdImageDestroy(im);

gdImageGifCtx

void gdImageGifCtx(gdImagePtr im, gdIOCtxPtr out);

Écrit une image GIF via un gdIOCtx. Voir gdImageGif.

Paramètre

Nom Description
im Ce paramètre permet d'indiquer l'image à écrire.
out Ce paramètre permet d'indiquer la structure gdIOCtx utilisée pour effectuer l'écriture.

Retour

Rien

gdImageGifAnimBeginPtr

void * gdImageGifAnimBeginPtr(gdImagePtr im, int *size, int GlobalCM, int Loops);

Comme gdImageGifAnimBegin, sauf qu'il génère une sortie vers un tampon mémoire. Voir gdImageGifAnimBegin.

La mémoire renvoyée doit être libérée par l'appelant lorsqu'elle n'est plus nécessaire. **L'appelant doit appeler gdFree(), et non free()**, à moins qu'il ne soit absolument certain que les mêmes implémentations de malloc, free,... sont utilisées à la fois au moment de la construction de la bibliothèque et au moment de la construction de l'application (mais ne le faites pas ; cela pourrait toujours changer).

Le paramètre «size» reçoit la taille totale du bloc de mémoire.

Paramètre

Nom Description
im Ce paramètre permet d'indiquer l'image de référence.
size Ce paramètre permet d'indiquer la taille de sortie en octets du résultat.
GlobalCM Ce paramètre permet d'indiquer le drapeau de palette de couleurs global : 1 → oui, 0 → non, -1 → faire la valeur par défaut.
Loops Ce paramètre permet d'indiquer le nombre de boucles ; 0 → infini, -1 signifie aucune boucle.

Retour

Valeur Description
Pointeur Un pointeur vers les données résultantes (le contenu du début du GIF) ou NULL si une erreur s'est produite.

gdImageGifAnimBegin

void gdImageGifAnimBegin(gdImagePtr im, FILE *outFile, int GlobalCM, int Loops);

Cette fonction doit être appelée en tant que première fonction lors de la création d'une animation GIF. Elle écrit les entêtes de fichier GIF corrects dans la sortie du fichier sélectionné et prépare l'ajout d'images pour l'animation. L'argument image n'est pas utilisé pour produire une image dans le fichier, il est uniquement utilisé pour établir la taille de l'image de l'animation GIF, les options d'entrelacement et la palette de couleurs. gdImageGifAnimAdd est utilisé pour ajouter la première image et les suivantes à l'animation, et l'animation doit être terminée en y écrivant un caractère point-virgule (;) ou en utilisant gdImageGifAnimEnd pour le faire.

L'indicateur GlobalCM indique si une carte de couleurs globale (ou une palette) est utilisée dans l'entête GIF89A. Une valeur différente de zéro spécifie qu'une carte de couleurs globale doit être utilisée pour réduire la taille de l'animation. Bien entendu, si les cartes de couleurs des images individuelles diffèrent considérablement, une carte de couleurs globale peut ne pas être une bonne idée. GlobalCM=1 signifie écrire la carte de couleurs globale, GlobalCM=0 signifie ne pas le faire et GlobalCM=-1 signifie effectuer la valeur par défaut, qui consiste actuellement à utiliser une carte de couleurs globale.

Si Loops est égal à 0 ou plus, l'extension Netscape 2.0 pour le nombre de boucles d'animation est écrite. 0 signifie un nombre de boucles infini. -1 signifie que l'extension n'est pas ajoutée, ce qui n'entraîne aucune boucle. -1 est la valeur par défaut.

Variantes

gdImageGifAnimBeginCtx génère l'image via une structure gdIOCtx.

gdImageGifAnimBeginPtr entrepose l'image dans un grand tableau d'octets.

Paramètre

Nom Description
im Ce paramètre permet d'indiquer l'image de référence.
outfile Ce paramètre permet d'indiquer le fichier de sortie FILE*.
GlobalCM Ce paramètre permet d'indiquer le drapeau de palette de couleurs global : 1 → oui, 0 → non, -1 → faire la valeur par défaut.
Loops Ce paramètre permet d'indiquer le nombre de boucles ; 0 → infini, -1 signifie aucune boucle.

Retour

Rien

Exemple

Voir gdImageGifAnimBegin.

gdImageGifAnimBeginCtx

void gdImageGifAnimBeginCtx(gdImagePtr im, gdIOCtxPtr out, int GlobalCM, int Loops);

Comme gdImageGifAnimBegin, sauf qu'il génère une sortie vers gdIOCtx. Voir gdImageGifAnimBegin.

Paramètre

Nom Description
im Ce paramètre permet d'indiquer l'image de référence.
out Ce paramètre permet d'indiquer un pointeur vers la sortie gdIOCtx.
GlobalCM Ce paramètre permet d'indiquer le drapeau de palette de couleurs global : 1 → oui, 0 → non, -1 → faire la valeur par défaut.
Loops Ce paramètre permet d'indiquer le nombre de boucles ; 0 → infini, -1 signifie aucune boucle.

Retour

Rien

gdImageGifAnimAddPtr

void * gdImageGifAnimAddPtr(gdImagePtr im, int *size, int LocalCM, int LeftOfs, int TopOfs, int Delay, int Disposal, gdImagePtr previm);

Comme gdImageGifAnimAdd (contenant plus d'informations) sauf qu'il entrepose les données à écrire en mémoire et renvoie un pointeur vers celles-ci.

Cette mémoire doit être libérée par l'appelant lorsqu'elle n'est plus nécessaire. **L'appelant doit appeler gdFree(), et non free(),** à moins qu'il ne soit absolument certain que les mêmes implémentations de malloc, free,... sont utilisées à la fois au moment de la construction de la bibliothèque et au moment de la construction de l'application (mais ne le faites pas ; cela pourrait toujours changer).

Le paramètre «size» reçoit la taille totale du bloc de mémoire.

Paramètre

Nom Description
im Ce paramètre permet d'indiquer l'image à ajouter.
size Ce paramètre permet d'indiquer la taille du tampon de sortie résultant.
LocalCM Ce paramètre permet d'indiquer un 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

Valeur Description
Pointeur Pointeur vers les données résultantes ou NULL si une erreur s'est produite.

gdImageGifAnimAdd

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

Cette fonction écrit des images d'animation GIF dans une animation GIF, ayant été initialisée avec gdImageGifAnimBegin. Avec LeftOfs et TopOfs, vous pouvez placer cette image dans un décalage différent de (0,0) à l'intérieur de l'écran d'image tel que défini dans gdImageGifAnimBegin. Le délai entre l'image précédente et cette image est en unités de 1/100 s. Disposal est généralement gdDisposalNone, ce qui signifie que les pixels modifiés par cette image doivent rester sur l'écran lorsque l'image suivante commence à s'afficher, mais peut également être gdDisposalUnknown (non recommandé), gdDisposalRestoreBackground (restaure la première couleur allouée de la palette globale) ou gdDisposalRestorePrevious (restaure l'apparence de la zone affectée avant le rendu de l'image). Seul gdDisposalNone est un choix judicieux pour la première image. Si previm est passé, l'optimiseur GIF intégré utilisera toujours gdDisposalNone quel que soit le paramètre Disposal.

La définition de l'indicateur LocalCM sur 1 ajoute une palette locale pour cette image à l'animation. Sinon, la palette globale est supposée et l'utilisateur doit s'assurer que les palettes correspondent. Utilisez gdImagePaletteCopy pour le faire.

L'optimisation automatique est activée en donnant l'image précédente comme paramètre. Cette fonction compare ensuite les images et écrit uniquement les pixels modifiés dans la nouvelle image de l'animation. Le paramètre Disposal pour les animations optimisées doit être défini sur 1, également pour la première image. Les paramètres LeftOfs et TopOfs sont ignorés pour les images optimisées. Pour obtenir une bonne optimisation, il est généralement préférable d'utiliser une seule carte de couleurs globale. Pour permettre à gdImageGifAnimAdd de compresser les pixels inchangés via l'utilisation d'une couleur transparente, l'image doit inclure une couleur transparente.

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.

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

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. }

gdImageGifAnimAddCtx

void gdImageGifAnimAddCtx(gdImagePtr im, gdIOCtxPtr out, int LocalCM, int LeftOfs, int TopOfs, int Delay, int Disposal, gdImagePtr previm);

Ajoute une image d'animation via un gdIOCtxPtr. Voir gdImageGifAnimAdd.

Paramètre

Nom Description
im Ce paramètre permet d'indiquer l'image à ajouter.
out Ce paramètre permet d'indiquer la sortie gdIOCtxPtr.
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 le NULL ou un pointeur vers l'image précédente écrite.

Retour

Rien

gdImageGifAnimEnd

void gdImageGifAnimEnd(FILE *outFile);

Termine correctement le fichier GIF.

(Les versions précédentes de la documentation de cette fonction suggéraient simplement d'écrire manuellement un point-virgule (';') à la place, car c'est tout ce que fait cette fonction. Bien que cela n'ait plus changé, nous vous suggérons désormais de ne pas le faire et d'appeler à la place toujours gdImageGifAnimEnd (ou équivalent) car les versions ultérieures pourraient éventuellement faire plus ou des choses différentes.)

Variantes

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

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

Paramètre

Nom Description
outfile Ce paramètre permet d'indiquer le fichier de destination *FILE.

Retour

Rien

gdImageGifAnimEndPtr

void * gdImageGifAnimEndPtr(int *size);

Comme gdImageGifAnimEnd (contenant plus d'informations) sauf qu'il entrepose les données à écrire en mémoire et renvoie un pointeur vers celles-ci.

Cette mémoire doit être libérée par l'appelant lorsqu'elle n'est plus nécessaire. **L'appelant doit invoquer gdFree(), et non free(),** à moins qu'il ne soit absolument certain que les mêmes implémentations de malloc, free,... sont utilisées à la fois au moment de la construction de la bibliothèque et au moment de la construction de l'application (mais ne le faites pas ; cela pourrait toujours changer).

Le paramètre «size» reçoit la taille totale du bloc de mémoire.

Paramètre

Nom Description
size Ce paramètre permet d'indiquer la taille du tampon de sortie résultant.

Retour

Valeur Description
Pointeur Pointeur vers les données résultantes ou NULL si une erreur s'est produite.

gdImageGifAnimEndCtx

void gdImageGifAnimEndCtx(gdIOCtx * out);

Comme gdImageGifAnimEnd, mais écrit ses données via un gdIOCtx.

Paramètre

Nom Description
out Ce paramètre permet d'indiquer la destination gdIOCtx.

Retour

Rien

Remarques



PARTAGER CETTE PAGE SUR
Dernière mise à jour : Mardi, le 8 octobre 2024