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 JPEG

Le LibGD offre une prise en charge complète de l'entrée et de la sortie des fichiers au format JPEG, un format populaire pour les images compressées. Grâce aux fonctions intégrées, il est possible de lire des fichiers JPEG existants, de modifier leur contenu, puis de les sauvegarder. La bibliothèque permet également de manipuler la qualité de compression pour optimiser la taille du fichier ou la qualité visuelle de l'image. Ce support est utile pour les applications nécessitant de traiter des fichiers d'images de manière dynamique, notamment les sites Web, les outils de retouche d'image et les systèmes de gestion multimédia.

Les fonctions d'importation JPEG

Le LibGD fournit plusieurs fonctions pour charger des images JPEG, comme gdImageCreateFromJpeg, permettant de lire un fichier JPEG directement depuis un disque. Si les données JPEG sont disponibles en mémoire, les fonctions comme gdImageCreateFromJpegPtr ou gdImageCreateFromJpegCtx sont utilisées pour charger des images à partir de pointeurs ou de contextes de flux. Ces options offrent une grande flexibilité, permettant aux développeurs de traiter des images provenant de diverses sources, que ce soit des fichiers locaux ou des données issues de téléchargements réseau.

L'exportation des images en format JPEG

Pour enregistrer des images au format JPEG, LibGD propose plusieurs fonctions adaptées aux besoins variés des développeurs. Par exemple, gdImageJpeg écrit une image dans un fichier avec une qualité par défaut, tandis que gdImageJpegEx offre des paramètres supplémentaires comme la qualité de compression, spécifiée par un pourcentage. Ces fonctions permettent également d'exporter des images vers des contextes de flux (via gdImageJpegCtx), ou directement dans des blocs de mémoire (via gdImageJpegPtr), ce qui simplifie l'intégration dans des applications nécessitant des réponses rapides, comme les serveurs Web.

Options avancées pour le format JPEG

Le LibGD permet aux développeurs d'ajuster les paramètres spécifiques à l'écriture d'images JPEG, comme la qualité et le niveau de compression. La qualité peut être modifiée pour optimiser le rapport entre la taille du fichier et la fidélité visuelle de l'image. Une faible qualité réduit la taille du fichier mais peut dégrader l'image, tandis qu'une haute qualité préserve les détails mais augmente la taille. Ces options, combinées aux fonctions de lecture et d'écriture flexibles, font du support JPEG dans LibGD un outil puissant pour les projets nécessitant une gestion dynamique et efficace des images.

Les fonctions

Nom Description
gdImageJpeg Cette fonction permet d'écrire une image spécifiée dans un fichier au format JPEG. Elle prend en entrée une image et un fichier cible, et génère un fichier JPEG à partir des données de l'image.
gdImageJpegPtr Identique à gdImageJpeg, cette fonction génère les données JPEG, mais au lieu d'écrire dans un fichier, elle retourne un pointeur vers une zone mémoire contenant les données JPEG. Cela est utile pour travailler directement avec des données en mémoire, par exemple pour les envoyer via un réseau.
gdImageJpegCtx Cette fonction écrit l'image sous forme de données JPEG via un objet gdIOCtx. Cela permet de gérer des contextes de flux personnalisés, comme l'écriture dans un flux réseau ou dans une base de données, au lieu d'un simple fichier sur disque.
gdImageCreateFromJpeg Cette fonction est utilisée pour lire une image au format JPEG à partir d'un fichier et la charger dans un objet image GD. Elle permet de manipuler facilement des fichiers JPEG existants.
gdImageCreateFromJpegEx Variante avancée de gdImageCreateFromJpeg, cette fonction permet de charger une image JPEG avec des options supplémentaires. Elle est conçue pour charger des images en couleur réelle (truecolor) et peut être utilisée dans des cas nécessitant des personnalisations avancées.
gdImageCreateFromJpegPtr Cette fonction charge une image JPEG à partir d'un pointeur vers des données en mémoire, au lieu d'un fichier sur disque. Cela est utile pour traiter des images reçues via des téléchargements ou des flux réseau.
gdImageCreateFromJpegPtrEx Similaire à gdImageCreateFromJpegPtr, cette fonction offre des options supplémentaires pour le chargement des images, notamment pour les images en truecolor, offrant une plus grande flexibilité dans des cas avancés.
gdImageCreateFromJpegCtx Cette fonction lit une image JPEG via un contexte gdIOCtx, au lieu d'utiliser un fichier ou un pointeur en mémoire. Cela est utile pour intégrer des flux de données personnalisés.
gdImageCreateFromJpegCtxEx Variante avancée de gdImageCreateFromJpegCtx, cette fonction offre des options supplémentaires pour charger des images JPEG à partir d'un contexte, notamment pour manipuler des images en truecolor ou appliquer des configurations personnalisées.

gdImageJpeg

void gdImageJpeg(gdImagePtr im, FILE *outFile, int quality);

gdImageJpeg génère l'image spécifiée dans le fichier spécifié au format JPEG. 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. gdImageJpeg ne ferme pas le fichier ; votre code doit le faire.

Si la qualité est négative, la valeur de qualité JPEG par défaut d'IJG (devant donner un bon compromis qualité/taille générale dans la plupart des situations) est utilisée. Sinon, pour des raisons pratiques, la qualité doit être une valeur comprise entre 0 et 95, les valeurs de qualité supérieures impliquant généralement à la fois une qualité supérieure et des tailles d'image plus grandes.

Si vous avez défini l'entrelacement d'images à l'aide de gdImageInterlace, cette fonction interprétera cela comme signifiant que vous souhaitez générer un JPEG progressif. Certains programmes (par exemple, les navigateurs Web) peuvent afficher les JPEG progressifs de manière incrémentielle; cela peut être utile lors de la navigation sur une liaison de communication relativement lente, par exemple. Les fichiers JPEG progressifs peuvent également être légèrement plus petits que les fichiers JPEG séquentiels (non progressifs).

Variantes

gdImageJpegCtx entrepose l'image à l'aide d'une structure gdIOCtx.

gdImageJpegPtr entrepose l'image dans la RAM.

Paramètre

Nom Description
im Ce paramètre permet d'indiquer l'image à sauvegarder.
outFile Ce paramètre permet d'indiquer le pointeur FILE vers lequel écrire.
quality Ce paramètre permet de qualité de compression (0 à 95, 0 signifie utiliser la valeur par défaut).

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.jpg", "wb");
  14. /* Écrire au format JPEG en utilisant la qualité par défaut */
  15. gdImageJpeg(im, out, -1);
  16. /* Fermer le fichier */
  17. fclose(out);
  18. /* Détruire l'image */
  19. gdImageDestroy(im);

gdImageJpegPtr

void * gdImageJpegPtr(gdImagePtr im, int * size, int quality);

Identique à gdImageJpeg, sauf qu'il renvoie un pointeur vers une zone mémoire contenant les données JPEG. 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(). 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 l'image de sortie résultante.
quality Ce paramètre permet d'indiquer la qualité de compression.

Retour

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

gdImageJpegCtx

void gdImageJpegCtx(gdImagePtr im, gdIOCtx *outfile, int quality);

Écrire l'image sous forme de données JPEG via un gdIOCtx. Voir gdImageJpeg pour plus de détails.

Paramètre

Nom Description
im Ce paramètre permet d'indiquer l'image à écrire.
outfile Ce paramètre permet d'indiquer le fichier de sortie.
quality Ce paramètre permet d'indiquer la qualité de l'image.

gdImageCreateFromJpeg

gdImagePtr gdImageCreateFromJpeg(FILE * inFile);

Voir gdImageCreateFromJpegEx.

gdImageCreateFromJpegEx

gdImagePtr gdImageCreateFromJpegEx(FILE * inFile, int ignore_warning);

gdImageCreateFromJpegEx est appelé pour charger des images en vraies couleurs à partir de fichiers au format JPEG. Appelez gdImageCreateFromJpegEx avec un pointeur déjà ouvert vers un fichier contenant l'image souhaitée. gdImageCreateFromJpegEx renvoie un gdImagePtr vers la nouvelle image en vraies couleurs, 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 JPEG). gdImageCreateFromJpegEx 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.

L'image renvoyée est toujours une image en vraies couleurs.

Variantes

gdImageCreateFromJpegPtrEx crée une image à partir de données JPEG déjà en mémoire.

gdImageCreateFromJpegCtxEx lit ses données via les pointeurs de fonction dans une structure gdIOCtx.

gdImageCreateFromJpeg, gdImageCreateFromJpegPtr et gdImageCreateFromJpegCtx sont équivalents à l'appel de leurs homologues nommés Ex avec un ignore_warning défini sur 1 (c'est-à-dire TRUE).

Paramètre

Nom Description
infile Ce paramètre permet d'indiquer le pointeur de fichier d'entrée.
ignore_warning Ce paramètre permet d'indiquer le drapeau. Si la valeur est vraie, ignore les avertissements récupérables.

Retour

Valeur Description
NULL Une erreur s'est produite.
Pointeur Un pointeur vers la nouvelle image en vraies couleurs. Celui-ci devra être détruit avec gdImageDestroy une fois qu'il ne sera plus nécessaire.

Exemple

  1. gdImagePtr im;
  2. FILE *in;
  3. in = fopen("myjpeg.jpg", "rb");
  4. im = gdImageCreateFromJpegEx(in, GD_TRUE);
  5. fclose(in);
  6. /* ... Utiliser l'image ... */
  7. gdImageDestroy(im);

gdImageCreateFromJpegPtr

gdImagePtr gdImageCreateFromJpegPtr(int size, void *data);

Paramètre

Nom Description
size Ce paramètre permet d'indiquer la taille des données JPEG en octets.
data Ce paramètre permet d'indiquer le pointeur vers les données JPEG.

Voir gdImageCreateFromJpegEx.

gdImageCreateFromJpegPtrEx

gdImagePtr gdImageCreateFromJpegPtrEx(int size, void * data, int ignore_warning);

Paramètre

Nom Description
size Ce paramètre permet d'indiquer la taille des données JPEG en octets.
data Ce paramètre permet d'indiquer un pointeur vers les données JPEG.
ignore_warning Ce paramètre permet d'indiquer s'il est vrai, d'ignorer les avertissements récupérables.

Voir gdImageCreateFromJpegEx.

gdImageCreateFromJpegCtx

gdImagePtr gdImageCreateFromJpegCtx(gdIOCtx * infile);

Voir gdImageCreateFromJpeg.

gdImageCreateFromJpegCtxEx

gdImagePtr gdImageCreateFromJpegCtxEx(gdIOCtx *infile, int ignore_warning);

Voir gdImageCreateFromJpeg.



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