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.