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 entrées/sorties PNG

La gestion des images PNG dans LibGD, appelée "PNG IO", constitue une partie essentielle de cette bibliothèque graphique en raison de la popularité du format PNG. LibGD permet de lire, écrire et manipuler des images au format PNG avec un haut niveau de flexibilité. Le format PNG étant sans perte et supportant la transparence grâce à un canal alpha, il est couramment utilisé pour les graphiques nécessitant une qualité élevée. Avec les fonctions "PNG IO", les développeurs peuvent facilement générer des images dynamiques ou charger des fichiers existants pour les traiter dans des applications Web ou locales.

Le LibGD offre plusieurs fonctions pour écrire des fichiers PNG. Par exemple, la fonction gdImagePng permet de générer une image PNG à partir d'une image GD et de l'enregistrer dans un fichier. Pour les cas où le fichier n'est pas nécessaire, la fonction gdImagePngPtr retourne un pointeur vers la zone mémoire contenant les données PNG, idéale pour les flux HTTP ou d'autres scénarios en mémoire. Une autre variante, gdImagePngCtx, permet d'écrire l'image via un contexte gdIOCtx, rendant la sortie flexible pour des destinations comme les bases de données, les flux réseau ou les systèmes de fichiers personnalisés.

La lecture des fichiers PNG est tout aussi bien supportée dans LibGD. Les fonctions telles que gdImageCreateFromPng ou gdImageCreateFromPngPtr permettent de charger une image PNG à partir d'un fichier ou d'une zone mémoire. Cela est utile pour des applications devant traiter des images téléchargées par les utilisateurs ou récupérées à partir de flux réseau. Pour les cas plus complexes, comme les contextes de flux personnalisés, gdImageCreateFromPngCtx peut être utilisée. Ces fonctions permettent de créer un objet image GD manipulable, offrant des possibilités de modification et de traitement après chargement.

Une caractéristique importante de la gestion PNG dans LibGD est son support pour les images avec transparence. Les fichiers PNG avec un canal alpha ou une couleur transparente peuvent être lus et traités sans problème, ce qui permet de produire des images visuellement attrayantes avec des arrière-plans transparents. Par exemple, une image PNG avec un logo transparent peut être utilisée pour des filigranes ou superposée à d'autres images. Grâce à ces fonctionnalités avancées, combinées à l'efficacité de LibGD, les développeurs ont à leur disposition des outils puissants pour travailler avec des images PNG dans des projets variés.

Nom Description
gdImageCreateFromPng Cette fonction est utilisée pour charger des images à partir de fichiers au format PNG.
gdImageCreateFromPngPtr Identique à gdImageCreateFromPng, mais elle travaille avec des données PNG provenant d'une zone mémoire.
gdImageCreateFromPngCtx Identique à gdImageCreateFromPng, mais elle lit les données PNG via une structure gdIOCtx.
gdImagePngEx Cette fonction permet d'enregistrer l'image spécifiée dans un fichier au format PNG, en offrant des options de personnalisation comme le niveau de compression.
gdImagePng Équivalent à gdImagePngEx, mais avec un niveau de compression par défaut de -1.
gdImagePngPtr Équivalent à gdImagePngPtrEx, mais avec un niveau de compression par défaut de -1.
gdImagePngPtrEx Similaire à gdImagePngEx, sauf qu'elle retourne un pointeur vers une zone mémoire contenant les données de l'image PNG.
gdImagePngCtx Équivalent à gdImagePngCtxEx, mais avec un niveau de compression par défaut de -1.
gdImagePngCtxEx Permet d'enregistrer une image au format PNG via une structure gdIOCtx, au lieu de l'enregistrer directement dans un fichier.

gdImageCreateFromPng

gdImagePtr gdImageCreateFromPng(FILE * inFile);

gdImageCreateFromPng est appelé pour charger des images à partir de fichiers au format PNG. Appelez gdImageCreateFromPng avec un pointeur déjà ouvert vers un FILE contenant l'image souhaitée. gdImageCreateFromPng renvoie un gdImagePtr vers la nouvelle image, ou NULL s'il est impossible de charger l'image (le plus souvent parce que le fichier est corrompu ou ne contient pas d'image PNG). gdImageCreateFromPng ne ferme pas le fichier. Vous pouvez inspecter les membres sx et sy de l'image pour déterminer sa taille. L'image doit éventuellement être détruite à l'aide de gdImageDestroy().

Si l'image PNG en cours de chargement est une image en vraies couleurs, le gdImagePtr résultant fera référence à une image en vraies couleurs. Si l'image PNG en cours de chargement est une image en palette ou en niveaux de gris, le gdImagePtr résultant fera référence à une image en palette. GD ne conserve que 8 bits de résolution pour chacun des canaux rouge, vert et bleu, et seulement 7 bits de résolution pour le canal alpha. La première restriction n'affecte qu'une poignée d'images PNG couleur 48 bits et niveaux de gris 16 bits très rares. La deuxième restriction affecte toutes les images PNG semi-transparentes, mais la différence est essentiellement invisible à l'oeil nu. 7 bits de résolution de canal alpha, c'est, en pratique, beaucoup.

Variantes

gdImageCreateFromPngPtr crée une image à partir de données PNG (c'est-à-dire le contenu d'un fichier PNG) déjà en mémoire.

gdImageCreateFromPngCtx lit une image à l'aide des fonctions d'une structure gdIOCtx.

gdImageCreateFromPngSource est similaire à gdImageCreateFromPngCtx mais utilise l'ancienne interface gdSource. Elle est obsolète.

Paramètre

Nom Description
infile Ce paramètre permet d'indiquer le pointeur de fichier d'entrée.

Retour

Valeur Description
Pointeur Un pointeur vers la nouvelle image ou NULL si une erreur s'est produite.

Exemple

  1. gdImagePtr im;
  2. /* ... à l'intérieur d'une fonction ... */
  3. FILE *in;
  4. in = fopen("mypng.png", "rb");
  5. im = gdImageCreateFromPng(in);
  6. fclose(in);
  7. /* ... Utiliser l'image ... */
  8. gdImageDestroy(im);

gdImageCreateFromPngPtr

gdImagePtr gdImageCreateFromPngPtr(int size, void * data);

Voir gdImageCreateFromPng.

gdImageCreateFromPngCtx

gdImagePtr gdImageCreateFromPngCtx(gdIOCtx * infile);

Voir gdImageCreateFromPng.

gdImagePngEx

void gdImagePngEx(gdImagePtr im, FILE * outFile, int level);

gdImagePngEx génère l'image spécifiée dans le fichier spécifié au format PNG. Le fichier doit être ouvert pour l'écriture. 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, et sous Unix, il n'y a aucune pénalité pour cela. gdImagePngEx ne ferme pas le fichier ; votre code doit le faire.

De plus, gdImagePngEx permet de spécifier le niveau de compression. Un niveau de compression de 0 signifie «aucune compression». Un niveau de compression de 1 signifie «compressé, mais aussi rapidement que possible». Un niveau de compression de 9 signifie «compressé autant que possible pour produire le fichier le plus petit possible». Un niveau de compression de -1 utilisera le niveau de compression par défaut au moment où zlib a été compilé sur votre système.

Variantes

gdImagePng équivaut à appeler gdImagePngEx avec une compression de -1.

gdImagePngCtx et gdImagePngCtxEx écrivent via un gdIOCtx au lieu d'un descripteur de fichier.

gdImagePngPtr et gdImagePngPtrEx entreposent le fichier image en mémoire.

Paramètre

Nom Description
im Ce paramètre permet d'indiquer l'image à écrire.
outFile Ce paramètre permet d'indiquer l'objet de sortie FILE*.
level Ce paramètre permet d'indiquer le niveau de compression : 0 → aucun, 1 à 9 → niveau, -1 → par défaut.

Retour

Rien

Exemple

  1. gdImagePtr im;
  2. int black, white;
  3. FILE *out;
  4.  
  5. im = gdImageCreate(100, 100);                    /* Créer l'image */
  6. white = gdImageColorAllocate(im, 255, 255, 255); /* Contexte d'allocation */
  7. black = gdImageColorAllocate(im, 0, 0, 0);       /* Attribuer la couleur du dessin */
  8. gdImageRectangle(im, 0, 0, 99, 99, black);       /* Dessiner un rectangle */
  9. out = fopen("rect.png", "wb");                   /* Ouvrir le fichier de sortie (binaire) */
  10. gdImagePngEx(im, out, 9);                        /* Écrire en PNG, compression maximale */
  11. fclose(out);                                     /* Fermer le fichier */
  12. gdImageDestroy(im);                              /* Détruire l'image */

gdImagePng

void gdImagePng(gdImagePtr im, FILE * outFile);

Équivalent à l'appel de gdImagePngEx avec une compression de -1.

Paramètre

Nom Description
im Ce paramètre permet d'indiquer l'image à sauvegarder.
outFile Ce paramètre permet d'indiquer le fichier de sortie FILE*.

Retour

Rien

gdImagePngPtr

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

Équivalent à l'appel de gdImagePngPtrEx avec une compression de -1.

Voir gdImagePngEx pour plus d'informations.

Paramètre

Nom Description
im Ce paramètre permet d'indiquer que l'image à sauvegarder.
size Ce paramètre permet d'indiquer la taille de la sortie en octets du résultat.

Retour

Valeur Description
Pointeur Un pointeur vers la mémoire contenant les données de l'image ou NULL en cas d'erreur.

gdImagePngPtrEx

void * gdImagePngPtrEx(gdImagePtr im, int *size, int level);

Identique à gdImagePngEx, sauf qu'il renvoie un pointeur vers une zone mémoire contenant les données PNG. 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()**

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

Voir gdImagePngEx pour plus d'informations.

Paramètre

Nom Description
im Ce paramètre permet d'indiquer l'image à sauvegarder.
size Ce paramètre permet d'indiquer taille de la sortie en octets du résultat.
level Ce paramètre permet d'indiquer le niveau de compression : 0 → aucun, 1 à 9 → niveau, -1 → par défaut.

Retour

Valeur Description
Pointeur Un pointeur vers la mémoire contenant les données de l'image ou NULL en cas d'erreur.

gdImagePngCtx

void gdImagePngCtx(gdImagePtr im, gdIOCtx *outfile);

Équivalent à l'appel de gdImagePngCtxEx avec une compression de -1. Voir gdImagePngEx pour plus d'informations.

Paramètre

Nom Description
im Ce paramètre permet d'indiquer l'image à sauvegarder.
outfile Ce paramètre permet d'indiquer le gdIOCtx sur lequel écrire.

Retour

Rien

gdImagePngCtxEx

void gdImagePngCtxEx(gdImagePtr im, gdIOCtx *outfile, int level);

Génère l'image donnée sous forme de données PNG, mais en utilisant un gdIOCtx au lieu d'un fichier. Voir gdImagePngEx.

Paramètre

Nom Description
im Ce paramètre permet d'indiquer l'image à sauvegarder.
outfile Ce paramètre permet d'indiquer le gdIOCtx sur lequel écrire.
level Ce paramètre permet d'indiquer le niveau de compression : 0 → aucun, 1 à 9 → niveau, -1 → par défaut.

Retour

Rien



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