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 BMP

LibGD est une bibliothèque graphique largement utilisée pour manipuler et générer des images. Parmi les nombreux formats pris en charge, le format BMP (Bitmap) occupe une place notable grâce à sa simplicité et son adoption universelle. Les fonctionnalités des entrées/sorties BMP dans LibGD permettent de lire, créer et sauvegarder des fichiers au format BMP, facilitant ainsi leur manipulation dans divers contextes, notamment dans les applications nécessitant un format non compressé. Bien que moins optimisé en termes de taille par rapport aux formats modernes comme PNG ou JPEG, le BMP reste prisé pour sa compatibilité et sa structure simple.

Fonctionnalités principales

LibGD propose plusieurs fonctions pour travailler avec des fichiers BMP. La fonction gdImageBmp permet d'écrire une image existante dans un fichier BMP, tandis que gdImageCreateFromBmp ou gdImageCreateFromBmpPtr servent à charger une image BMP en mémoire. Ces fonctions prennent en charge les images Bitmap non compressées, ce qui les rend idéales pour des manipulations simples et directes. La bibliothèque gère également différents types de palettes et de profondeur de couleur, garantissant la fidélité de l'image chargée ou sauvegardée. Cela offre une grande flexibilité pour les développeurs travaillant avec ce format.

Avantages et limitations

Les opérations d'entrées/sorties de BMP dans LibGD se distinguent par leur simplicité et leur rapidité, car elles ne nécessitent pas de compression complexe. Cependant, le format BMP a des limitations intrinsèques, telles que des fichiers volumineux et une absence de support natif pour la transparence (sauf dans certaines variantes spécifiques). Cela en fait un format principalement adapté aux environnements où la taille des fichiers n'est pas un facteur critique, mais où une lecture et une écriture rapides sont nécessaires. En revanche, pour des applications nécessitant des fonctionnalités avancées, d'autres formats comme PNG ou AVIF pourraient être plus adaptés.

Utilisation pratique dans les projets

Le support de BMP dans LibGD est particulièrement utile pour des projets nécessitant l'interopérabilité entre différentes plateformes ou outils. Par exemple, il peut être utilisé dans des scripts d'automatisation pour convertir des images entre formats ou dans des applications embarquées où le traitement d'images en temps réel est requis. Grâce à ses API simples et bien documentées, LibGD permet de créer rapidement des solutions robustes autour du format BMP. En outre, la possibilité de travailler avec des fichiers BMP en combinaison avec d'autres formats dans une seule bibliothèque en fait un choix polyvalent pour les développeurs.

Les fonctions

Voici la liste des fonctions permettant de lire et écrire des images BMP avec LibGD :

Nom Description
gdImageBmpPtr Cette fonction génère les données d'image en format BMP et les écrit en utilisant un contexte d'entrée/sortie (gdIOCtx) au lieu d'un fichier classique.
gdImageBmp Cette fonction sauvegarde une image donnée dans un fichier spécifié au format BMP.
gdImageBmpCtx Similaire à gdImageBmpPtr, cette fonction génère les données BMP d'une image donnée et les écrit via un contexte d'entrée/sortie (gdIOCtx).
gdImageCreateFromBmp Charge une image depuis un fichier BMP et la convertit en un objet gdImage.
gdImageCreateFromBmpPtr Charge une image BMP directement depuis une mémoire tampon contenant les données du fichier.
gdImageCreateFromBmpCtx Charge une image BMP en utilisant un contexte d'entrée/sortie (gdIOCtx) pour accéder aux données.

gdImageBmpPtr

void * gdImageBmpPtr(gdImagePtr im, int * size, int compression);

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

Paramètre

Nom Description
im Ce paramètre permet d'indiquer l'image à sauvegarder.
size Ce paramètre permet d'indiquer la taille de sortie en octets du résultat.
compression Ce paramètre permet d'indiquer s'il faut appliquer le RLE ou non.

Retour

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

gdImageBmp

void gdImageBmp(gdImagePtr im, FILE *outFile, int compression);

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

De plus, gdImageBmp permet de spécifier si la compression RLE doit être appliquée.

Variantes

gdImageBmpCtx écrit via un gdIOCtx au lieu d'un descripteur de fichier.

gdImageBmpPtr entrepose le fichier image en mémoire.

Paramètre

Nom Description
im Ce paramètre permet d'indiquer l'image à sauvegarder.
outFile Ce paramètre permet d'indiquer l'objet de sortie FILE*.
compression Ce paramètre permet d'indiquer s'il faut appliquer le RLE ou non.

Retour

Rien

gdImageBmpCtx

void gdImageBmpCtx(gdImagePtr im, gdIOCtxPtr out, int compression)

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

Paramètre

Nom Description
im Ce paramètre permet d'indiquer l'image à sauvegarder.
out Ce paramètre permet d'indiquer le gdIOCtx sur lequel écrire.
compression Ce paramètre permet d'indiquer s'il faut appliquer le RLE ou non.

gdImageCreateFromBmp

gdImagePtr gdImageCreateFromBmp(FILE *inFile);

gdImageCreateFromBmpPtr

gdImagePtr gdImageCreateFromBmpPtr(int size, void *data);

Charge une image BMP directement depuis une mémoire tampon contenant les données du fichier.

gdImageCreateFromBmpCtx

gdImagePtr gdImageCreateFromBmpCtx(gdIOCtxPtr infile);

Charge une image BMP en utilisant un contexte d'entrée/sortie (gdIOCtx) pour accéder aux données.



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