Les entrées/sorties HEIF
Le LibGD prend en charge le format HEIF (High Efficiency Image File Format) pour l'entrée et la sortie d'images. HEIF est connu pour sa haute qualité d'image tout en conservant une taille de fichier réduite grâce à une compression avancée basée sur HEVC (High Efficiency Video Coding). Le LibGD permet aux développeurs d'interagir avec ce format, en fournissant des fonctions spécifiques pour lire, écrire et manipuler des fichiers HEIF. L'ajout de ce support reflète l'évolution des besoins dans la gestion d'images modernes, où l'optimisation entre qualité et taille est primordiale.
Fonctionnalités d'entrée HEIF
Le LibGD propose des fonctions comme gdImageCreateFromHeif et ses variantes (par exemple, gdImageCreateFromHeifCtx) pour charger des fichiers HEIF. Ces fonctions permettent d'importer des images HEIF dans une structure gdImage, pouvant ensuite être manipulée dans le programme. Elles offrent une compatibilité avec différentes sources, telles que des fichiers locaux ou des flux en mémoire, ce qui les rend adaptées à une variété de scénarios, notamment le traitement d'images à partir de bases de données ou d'API.
Fonctionnalités de sortie HEIF
Pour écrire des images au format HEIF, le LibGD fournit des fonctions telles que gdImageHeif et gdImageHeifCtx. Ces fonctions convertissent une image entreposée dans une structure gdImage en fichier HEIF ou en flux HEIF, respectivement. En utilisant ces méthodes, les développeurs peuvent facilement exporter des graphiques ou des images optimisées pour le web ou d'autres environnements nécessitant des formats compressés. La prise en charge de ces fonctions garantit que les applications utilisant LibGD peuvent générer du contenu compatible avec les normes modernes.
Avantages et cas d'utilisation
Le support HEIF dans LibGD est particulièrement avantageux pour les applications nécessitant une gestion efficace des ressources, comme les galeries d'images ou les systèmes d'entreposage en nuage (infonuagique). Comparé aux formats traditionnels tels que JPEG ou PNG, HEIF offre une meilleure qualité pour des tailles de fichiers similaires ou inférieures. Grâce à l'intégration de HEIF IO, LibGD reste un choix pertinent pour les développeurs souhaitant travailler avec des formats d'images modernes tout en bénéficiant de l'interface simple et efficace de la bibliothèque.
Les fonctions
Nom | Description |
---|---|
gdImageCreateFromHeif | gdImageCreateFromHeif est appelée pour charger des images en vraie couleur (truecolor) à partir de fichiers au format HEIF. |
gdImageCreateFromHeifPtr | Fonction équivalente à gdImageCreateFromHeif. |
gdImageCreateFromHeifCtx | Fonction équivalente à gdImageCreateFromHeif, mais utilise un contexte gdIOCtx pour lire les données. |
gdImageHeifCtx | Écrit l'image au format HEIF en utilisant un gdIOCtx comme flux de sortie. |
gdImageHeifEx | gdImageHeifEx exporte l'image spécifiée dans un fichier au format HEIF avec des options configurables (qualité, codec,...). |
gdImageHeif | Variante de gdImageHeifEx utilisant les paramètres par défaut : qualité (-1), codec (GD_HEIF_Codec_HEVC) et sous-échantillonnage de chrominance (GD_HEIF_CHROMA_444). |
gdImageHeifPtr | Fonction équivalente à gdImageHeifEx. |
gdImageHeifPtrEx | Fonction équivalente à gdImageHeifEx. |
gdImageCreateFromHeif
gdImagePtr gdImageCreateFromHeif(FILE *inFile); |
gdImageCreateFromHeif est appelé pour charger des images en vraies couleurs à partir de fichiers au format HEIF. Appelez gdImageCreateFromHeif avec un pointeur déjà ouvert vers un fichier contenant l'image souhaitée. gdImageCreateFromHeif 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 HEIF). gdImageCreateFromHeif 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.
Paramètre
Nom | Description |
---|---|
infile | Le pointeur de fichier d'entrée. |
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. |
gdImageCreateFromHeifPtr
gdImagePtr gdImageCreateFromHeifPtr(int size, void *data); |
Voir gdImageCreateFromHeif.
Paramètre
Nom | Description |
---|---|
size | Ce paramètre permet d'indiquer la taille des données HEIF en octets. |
data | Ce paramètre permet d'indiquer un pointeur vers les données HEIF. |
gdImageCreateFromHeifCtx
gdImagePtr gdImageCreateFromHeifCtx(gdIOCtx * infile); |
Voir gdImageCreateFromHeif.
gdImageHeifCtx
void gdImageHeifCtx(gdImagePtr im, gdIOCtx *outfile, int quality, gdHeifCodec codec, gdHeifChroma chroma); |
Écrire l'image sous forme de données HEIF via un gdIOCtx. Voir gdImageHeifEx 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 la sortie de fichier. |
quality | Ce paramètre permet d'indiquer la qualité de l'image. |
codec | Ce paramètre permet d'indiquer le format de codage de sortie. |
chroma | Ce paramètre permet d'indiquer le format de sous-échantillonnage de la chrominance de sortie. |
Retour
Rien
gdImageHeifEx
void gdImageHeifEx(gdImagePtr im, FILE *outFile, int quality, gdHeifCodec codec, gdHeifChroma chroma); |
gdImageHeifEx génère l'image spécifiée dans le fichier spécifié au format HEIF. Le fichier doit être ouvert en é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. gdImageHeifEx ne ferme pas le fichier ; votre code doit le faire.
Si la qualité est de -1, une valeur de qualité raisonnable (devant donner un bon compromis qualité/taille générale dans la plupart des situations) est utilisée. Sinon, la qualité doit être une valeur comprise entre 0 et 100, les valeurs de qualité supérieures impliquant généralement à la fois une qualité supérieure et des tailles d'image plus grandes ou 200, pour un codec sans perte.
Variantes
gdImageHeifCtx entrepose l'image à l'aide d'une structure gdIOCtx.
gdImageHeifPtrEx 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 d'indiquer la qualité du codec (0 à 100). |
codec | Ce paramètre permet d'indiquer le format de codage de sortie. |
chroma | Ce paramètre permet d'indiquer le format de sous-échantillonnage de la chrominance de sortie. |
Retour
Rien
gdImageHeif
void gdImageHeif(gdImagePtr im, FILE *outFile); |
Variante de gdImageHeifEx utilisant la qualité par défaut (-1), le codec par défaut (GD_HEIF_Codec_HEVC) et le sous-échantillonnage de chrominance par défaut (GD_HEIF_CHROMA_444).
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. |
Retour
Rien
gdImageHeifPtr
void * gdImageHeifPtr(gdImagePtr im, int *size); |
Voir gdImageHeifEx.
gdImageHeifPtrEx
void * gdImageHeifPtrEx(gdImagePtr im, int *size, int quality, gdHeifCodec codec, gdHeifChroma chroma); |
Voir gdImageHeifEx.