Section courante

A propos

Section administrative du site

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.



Dernière mise à jour : Mardi, le 8 octobre 2024