gd_io.h | Entrée/sortie de la bibliothèque graphique |
---|---|
LibGD |
Description
Ce fichier d'entête est spécifique aux entrées/sorties des images, c'est-à-dire les fonctions liées à la lecture et à l'écriture des images dans des formats particuliers (par exemple, PNG, JPEG, GIF,...). Il définit les fonctions permettant d'ouvrir, de lire et d'écrire des fichiers d'images. gd_io.h est utilisé par les fonctions s'occupant de la gestion des données binaires dans les formats d'image pris en charge par LibGD.
Types
Nom | Description |
---|---|
gdIOCtx | La structure gdIOCtx contiennent des pointeurs de fonction pour effectuer des entrées/sorties d'image. |
gdIOCtx
Les structures gdIOCtx contiennent des pointeurs de fonction pour effectuer des entrées/sorties d'image.
La plupart des fonctions gd lisant et écrivant des fichiers, comme gdImagePng, ont également des variantes acceptant une structure gdIOCtx; voir gdImagePngCtx et gdImageCreateFromJpegCtx.
Ceux souhaitant fournir leurs propres routines personnalisées pour lire et écrire des images peuvent remplir une structure gdIOCtx avec des fonctions de leur propre conception pour lire et écrire des données. Pour la lecture d'images, les seules fonctions obligatoires sont getC et getBuf, devant renvoyer le nombre de caractères réellement lus, ou une valeur négative en cas d'erreur ou EOF. Ces fonctions doivent lire le nombre de caractères demandés, sauf à la fin du fichier.
Pour l'écriture d'images, les seules fonctions obligatoires sont putC et putBuf, renvoyant le nombre de caractères écrits; ces fonctions doivent écrire le nombre de caractères demandés, sauf en cas d'erreur. Les fonctions seek et tell ne sont requises qu'en conjonction avec le format de fichier gd2, prenant en charge le chargement rapide d'images partielles. La fonction gd_free ne sera pas appelée lors de l'appel des fonctions Ctx standard ; il s'agit d'une commodité d'implémentation lors de l'ajout de nouveaux types de données à gd. Pour des exemples, voir gd_png.c, gd_gd2.c, gd_jpeg.c,..., s'appuyant tous sur gdIOCtx pour implémenter les fonctions de lecture et d'écriture d'images standard.
- typedef struct gdIOCtx {
- int (*getC)(gdIOCtxPtr);
- int (*getBuf)(gdIOCtxPtr, void *, int wanted);
-
- void (*putC)(gdIOCtxPtr, int);
- int (*putBuf)(gdIOCtxPtr, const void *, int wanted);
-
- /* seek doit renvoyer 1 en cas de SUCCÈS, 0 en cas d'ÉCHEC. Contrairement à fseek! */
- int (*seek)(gdIOCtxPtr, const int);
- long (*tell)(gdIOCtxPtr);
-
- void (*gd_free)(gdIOCtxPtr);
- } gdIOCtx;