Qu’est-ce que le format de fichier APNG ?
Animated PNG, ou APNG, étend PNG avec plusieurs images, leur synchronisation et la lecture en boucle. Il conserve les pixels en couleurs complètes et la transparence alpha au lieu d’utiliser le modèle de palette restreinte du GIF.
Fonctionnement du format de fichier APNG
Animated PNG a commencé comme une extension de Mozilla et a intégré la spécification officielle PNG avec sa troisième édition, une recommandation du W3C depuis juin 2025. Un flux APNG est un flux PNG normal auquel s’ajoutent trois types de blocs : acTL déclare l’animation et indique le nombre d’images et de lectures (0 signifie une lecture en boucle indéfinie), fcTL décrit une image, et fdAT contient les données d’image sous la même forme que IDAT, précédées d’un numéro de séquence. Chaque image est compressée sans perte et utilise la même profondeur de bits, le même type de couleur et la même palette que l’image statique ; un APNG peut donc être en couleurs vraies avec un canal alpha complet ou utiliser une palette. Une image peut ne couvrir qu’une partie du canevas : son bloc fcTL indique une largeur, une hauteur et un décalage à l’intérieur des dimensions de l’image.
Points clés
- Un APNG ne se distingue pas d’un PNG par sa signature ni, en pratique, par son nom. Les deux commencent par les mêmes huit octets et, bien que
image/apnget.apngsoient enregistrés, MDN répertorie aussi.pngcomme extension APNG. Ce qui identifie un fichier comme animé est un blocacTLavant le premier blocIDAT. Pour le trouver, parcourez les blocs après la signature : chacun commence par une longueur de données sur quatre octets et un type sur quatre octets, suivis des données et d’un CRC sur quatre octets. - Un décodeur sans prise en charge d’APNG ignore les blocs d’animation et affiche l’image statique. Cette image n’est la première image de l’animation que lorsqu’un bloc
fcTLprécèdeIDAT; sinon, elle ne fait pas du tout partie de l’animation. La spécification PNG avertit qu’un fichier peut associer une image statique sans rapport avec son animation et que cela pourrait servir à contourner la modération ; examinez donc les images de l’animation ou générez-en des vignettes, au lieu de vous limiter à l’image statique. - Les images de l’animation sont des instructions de mise à jour du canevas, pas toujours des vues complètes. Chaque bloc
fcTLdéfinitdispose_op(laisser la région telle quelle, l’effacer en noir transparent ou restaurer le contenu précédent) etblend_op(remplacer la région ou y appliquer une composition alpha). Un outil qui extrait les données d’une image pour en faire une image autonome, ou qui réencode les images, sans appliquer ces règles peut produire des images partielles ou mal composées. Les délais sont des fractions de seconde (delay_numdivisé pardelay_den, un dénominateur nul étant interprété comme 100) ; un numérateur nul demande l’affichage de l’image suivante aussi vite que possible, et les logiciels de visualisation peuvent imposer un délai minimal. - La lecture de toutes les images nécessite souvent une activation explicite. La liste des formats d’ImageMagick indique qu’un APNG doit être lu avec un préfixe
apng:explicite, sinon ImageMagick « suppose qu’il s’agit d’une image PNG et ne lit que la première image », et queffmpegdoit se trouver dans le chemin de recherche des exécutables. Lu comme un simple PNG, le fichier fournit son image statique conformément à la spécification PNG ; cette « première image » ne fait donc pas nécessairement partie de l’animation. sharp a une demande de fonctionnalité ouverte pour APNG et un signalement utilisateur indiquant que seule la première image a été redimensionnée. Le démultiplexeur APNG de FFmpeg ignore par défaut le nombre de boucles du fichier (-ignore_loop), et son multiplexeur définit les répétitions avec-plays, où 0 signifie une lecture en boucle indéfinie.
Quand le format de fichier APNG est utile
Utilisez APNG pour les courtes animations d’interface, les autocollants et les indicateurs de chargement qui nécessitent des couleurs sur 24 bits ou un canal alpha sur 8 bits, ce que les couleurs indexées sur 8 bits du GIF et son unique indice de couleur transparente ne peuvent pas fournir. APNG est exclusivement sans perte ; attendez-vous donc à des fichiers volumineux pour les animations photographiques ou longues ; le guide des formats de MDN considère AVIF et WebP comme plus performants, mais moins largement pris en charge. Les versions actuelles de Chrome, Edge, Firefox, Opera et Safari affichent les APNG, et les logiciels sans prise en charge d’APNG affichent à la place l’image statique du fichier.
Comment Transloadit vous aide avec le format de fichier APNG
Le tableau des formats d’image de Transloadit répertorie APNG comme un format que ses Robots basés sur ImageMagick, dont /image/resize, peuvent lire et écrire, et son tableau des formats audio/vidéo répertorie un format apng que les Robots basés sur FFmpeg, tels que /video/encode, peuvent lire et écrire.
Les tableaux indiquent ce que chaque pile peut lire et écrire, pas si l’animation est conservée après un Step donné. La documentation du Robot /image/resize décrit ses paramètres frame et flatten uniquement pour les GIF animés et ne précise pas comment est traité un APNG nommé .png. Aucune Assembly n’a été exécutée pour cette entrée ; traitez donc un APNG représentatif avec la vôtre et vérifiez le nombre d’images du résultat.
- Formats d’image par pile ImageMagick
- Formats audio/vidéo par pile FFmpeg
- Robot de redimensionnement d’images
Explorer les possibilités de Transloadit en matière de formats de fichiers et de compression
Références
- Spécification PNG du W3C (troisième édition) : structure APNG (section 4.9), signature et disposition des blocs (sections 5.2–5.3), blocs acTL, fcTL et fdAT (11.3.6), enregistrement d’image/apng et considérations de sécurité associées (A.2)
- MDN : guide des types et formats de fichiers image (sections APNG et GIF)
- Can I use : PNG animé (APNG)
- Formats d’image ImageMagick : ligne APNG (spécificateur apng: explicite, nécessité de ffmpeg)
- Documentation des formats FFmpeg : démultiplexeur apng (section 3.3) et multiplexeur apng (section 4.14)
- Ticket sharp #3195 : le redimensionnement d’un APNG n’a enregistré que la première image
- Ticket sharp #2375 : prise en charge d’APNG (demande de fonctionnalité ouverte)