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 GD2

La gestion du format GD2 par LibGD permet de manipuler des images dans un format natif, compact et optimisé pour un entreposage et une récupération rapide. Le format GD2 est une version améliorée du format GD, introduisant des fonctionnalités supplémentaires comme la gestion des sous-images, ce qui est utile pour travailler avec des images très larges ou des régions spécifiques. Le format GD2 est principalement utilisé dans des contextes où l'efficacité est une priorité, comme les systèmes embarqués ou les environnements à ressources limitées.

La fonction gdImageCreateFromGd2 permet de charger une image au format GD2 à partir d'un fichier. Elle lit les données d'un fichier GD2 existant, crée une nouvelle image dans LibGD et permet ainsi de manipuler ou de convertir l'image dans d'autres formats. Ce type d'opération est particulièrement utile lorsqu'un système repose sur ce format pour stocker ses images tout en souhaitant les transformer ou les exporter vers des formats standards comme PNG ou JPEG.

De manière similaire, la fonction gdImageCreateFromGd2Ptr permet de charger une image au format GD2 directement à partir de données en mémoire. Cela peut être pratique pour traiter des données transmises via un réseau ou provenant de sources non traditionnelles, sans avoir besoin de passer par un fichier intermédiaire. La manipulation en mémoire est souvent utilisée pour optimiser les performances dans des applications Web ou des API de traitement d'images.

Pour enregistrer des images au format GD2, LibGD fournit la fonction gdImageGd2. Celle-ci écrit une image dans un fichier au format GD2, en permettant de spécifier le niveau de compression et la taille des blocs utilisés. Ces options permettent d'ajuster le format à des besoins spécifiques, comme réduire la taille des fichiers ou améliorer la rapidité d'accès. En résumé, les fonctionnalités GD2 IO de LibGD offrent une solution puissante et flexible pour manipuler des images dans un format compact, tout en assurant une compatibilité avec les fonctionnalités avancées de la bibliothèque.

Le format d'image GD2 est un format d'image propriétaire de libgd. Il doit être considéré comme obsolète et ne doit être utilisé qu'à des fins de développement et de test.

Structure d'un fichier image GD2

Tous les nombres sont entreposés au format big-endian.

Structure de l'entête du fichier

Champ Taille
signature 4 octets (toujours « gd2\0 »)
version 1 mot (par exemple « \0\002 »)
width 1 mot
height 1 mot
chunk_size 1 mot
format 1 mot
x_chunk_count 1 mot
y_chunk_count 1 mot

Formats reconnus

Valeur Description
1 Données d'image de palette brutes
2 Données d'image de palette compressées
3 Données d'image en couleurs vraies brutes
4 Données d'image en couleurs vraies compressées

Entête de bloc

Champ Taille
offset 1 double mot
size 1 double mot

Il existe des entêtes de bloc x_chunk_count * y_chunk_count.

Entête couleur de l'image Truecolor

Champ Taille
truecolor 1 octet (toujours «\001»)
transparent 1 dword (couleur ARGB); « \377\377\377\377 » signifie qu'aucune couleur transparente n'est définie

Entête de couleur de l'image de la palette

Champ Taille
truecolor 1 octet (toujours «\0»)
count 1 mot (le nombre de couleurs de palette utilisées)
transparent 1 double mot (index de palette) ; «\377\377\377\377» signifie qu'aucune couleur transparente n'est définie.
palette 256 doubles mots (couleurs RGBA)

Structure des blocs

Données de pixels séquentielles d'une zone rectangulaire (chunk_size x chunk_size), rangée principale de haut en bas, de gauche à droite :

Selon le format, le bloc peut être compressé en ZLIB.

Les fonctions

Voici les fonctions proposé par LibGD pour le GD2 IO :

Nom Description
gdImageCreateFromGd2 Cette fonction est utilisée pour charger une image complète depuis un fichier au format GD2. Elle lit le fichier GD2 spécifié et crée une image en mémoire, pouvant ensuite être manipulée par d'autres fonctions de la bibliothèque. C'est une méthode courante pour travailler avec des fichiers GD2 entreposés sur le disque.
gdImageCreateFromGd2Ptr Cette fonction permet de charger une image GD2 à partir d'un bloc de mémoire (plutôt que depuis un fichier). Cela est particulièrement utile lorsqu'une image GD2 est reçue via un réseau ou entreposée dans un tampon mémoire, évitant ainsi de devoir écrire le fichier sur le disque pour le lire.
gdImageCreateFromGd2Ctx Avec cette fonction, une image GD2 est chargée via une structure gdIOCtx, qui est un contexte d'entrée/sortie abstrait. Cela permet de personnaliser la manière dont les données GD2 sont lues, par exemple à partir de sockets, flux ou systèmes de fichiers non standard.
gdImageCreateFromGd2Part Cette fonction permet de charger une partie spécifique d'une image GD2 à partir d'un fichier. Cela est particulièrement utile pour manipuler des régions spécifiques d'une image très large sans avoir à charger l'image entière en mémoire, ce qui économise des ressources.
gdImageCreateFromGd2PartPtr Similaire à gdImageCreateFromGd2Part, mais cette version travaille avec des données stockées dans un bloc mémoire. C'est une alternative puissante pour extraire des sous-images directement depuis des tampons de données sans intermédiaire fichier.
gdImageCreateFromGd2PartCtx Cette fonction fonctionne comme gdImageCreateFromGd2Part, mais utilise un contexte gdIOCtx pour lire les données. Cela permet de lire une partie d'une image GD2 à partir de sources de données non standard (par exemple, des flux de données en continu).
gdImageGd2 Cette fonction est utilisée pour enregistrer une image au format GD2 dans un fichier. Vous pouvez configurer certains paramètres, comme la taille des blocs ou le niveau de compression, ce qui rend cette méthode flexible pour différents cas d'utilisation.
gdImageGd2Ptr Cette variante de gdImageGd2 écrit l'image GD2 dans un tampon mémoire au lieu d'un fichier. Cela permet de transmettre directement l'image, par exemple via des sockets ou des API, sans avoir besoin d'un fichier intermédiaire.

gdImageCreateFromGd2

gdImagePtr gdImageCreateFromGd2( FILE * inFile)

gdImageCreateFromGd2 est appelé pour charger des images à partir de fichiers au format gd2. Appelez gdImageCreateFromGd2 avec un pointeur déjà ouvert vers un fichier contenant l'image souhaitée au format de fichier gd2, étant spécifique à gd2 et destiné au chargement rapide de parties d'images volumineuses. (Il s'agit d'un format compressé, mais généralement pas aussi bon que la compression maximale de l'image entière.)

gdImageCreateFromGd2 renvoie un gdImagePtr à 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 au format gd). gdImageCreateFromGd2 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.

Variantes

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. FILE *in;
  3. in = fopen("mygd.gd2", "rb");
  4. im = gdImageCreateFromGd2(in);
  5. fclose(in);
  6. /* ... Utilisez l'image ... */
  7. gdImageDestroy(im);

gdImageCreateFromGd2Ptr

gdImagePtr gdImageCreateFromGd2Ptr(int size, void * data);

Paramètre

Nom Description
size Ce paramètre permet d'indiquer la taille des données GD2 en octets.
data Ce paramètre permet d'indiquer les données GD2 (c'est-à-dire le contenu d'un fichier GIF).

Voir gdImageCreateFromGd2.

gdImageCreateFromGd2Ctx

gdImagePtr gdImageCreateFromGd2Ctx(gdIOCtxPtr in);

Cette fonction permet de lire une image GD2 via une structure gdIOCtx. Voir gdImageCreateFromGd2.

gdImageCreateFromGd2Part

gdImagePtr gdImageCreateFromGd2Part(FILE * inFile, int srcx, int srcy, int w, int h);

gdImageCreateFromGd2Part est appelé pour charger des parties d'images à partir de fichiers au format gd2. Appelé de la même manière que gdImageCreateFromGd2, mais avec des paramètres supplémentaires indiquant la source (x, y) et la largeur/hauteur de l'image souhaitée. gdImageCreateFromGd2Part renvoie un gdImagePtr vers la nouvelle image, ou NULL s'il est impossible de charger l'image. L'image doit éventuellement être détruite à l'aide de gdImageDestroy.

Variantes

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

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

Paramètre

Nom Description
infile Ce paramètre permet d'indiquer le pointeur de fichier d'entrée.
srcx, srcy Ces paramètres permettent d'indiquer les coordonnées X et Y de la source.
w, h Ces paramètres permettent d'indiquer la largeur et la hauteur de l'image résultante.

Retour

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

gdImageCreateFromGd2PartPtr

gdImagePtr gdImageCreateFromGd2PartPtr(int size, void * data, int srcx, int srcy, int w, int h)

Paramètre

Nom Description
size Ce paramètre permet d'indiquer la taille des données GD en octets.
data Ce paramètre permet d'indiquer les données GD (c'est-à-dire le contenu d'un fichier GIF).
srcx, srcy Ces paramètres permettent d'indiquer les coordonnées X et Y de la source.
w, h Ces paramètres permettent d'indiquer la largeur et la hauteur de l'image résultante.

Cette fonction permet de lire une partie d'un fichier image GD2 entreposé en mémoire. Voir gdImageCreateFromGd2Part.

gdImageCreateFromGd2PartCtx

gdImagePtr gdImageCreateFromGd2PartCtx(gdIOCtx * in, int srcx, int srcy, int w, int h);

Paramètre

Nom Description
in Ce paramètre permet d'indiquer la source des données.
srcx, srcy Ces paramètres permettent d'indiquer les coordonnées X et Y de la source.
w, h Ces paramètres permettent d'indiquer la largeur et la hauteur de l'image résultante.

Cette fonction permet de lire une partie d'un fichier image de données GD2 via une structure gdIOCtx. Voir gdImageCreateFromGd2Part.

gdImageGd2

void gdImageGd2(gdImagePtr im, FILE * outFile, int cs, int fmt);

Cette fonction est utilisée pour enregistrer une image au format GD2 dans un fichier. Vous pouvez configurer certains paramètres, comme la taille des blocs ou le niveau de compression, ce qui rend cette méthode flexible pour différents cas d'utilisation.

gdImageGd2Ptr

void * gdImageGd2Ptr(gdImagePtr im, int cs, int fmt, int *size);

Cette variante de gdImageGd2 écrit l'image GD2 dans un tampon mémoire au lieu d'un fichier. Cela permet de transmettre directement l'image, par exemple via des sockets ou des API, sans avoir besoin d'un fichier intermédiaire.



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