# Analyseur APNG : chunks IDAT/fdAT, rejeu deflate et méthodes de disposition avec minutage des images

Téléversez un PNG/APNG et analysez la structure d'animation : signature PNG et vérification CRC32 de chaque chunk, IHDR (profondeur/type de couleur/entrelacement), acTL (nombre d'images et de lectures, avant le premier IDAT), fcTL (numéro de séquence, contrainte de région x+y+w+h ≤ canevas, normalisation delay_num/delay_den, dispose_op none/background/previous, blend_op source/over), première image IDAT + suivantes en fdAT ; les numéros de séquence partagés fcTL+fdAT doivent croître sans trou depuis 0 ; le flux deflate de chaque image est rejoué en vérifiant taille décompressée = hauteur × (1 + octets par ligne), un zlib corrompu est signalé ; la simulation de disposition avertit d'un previous en première image (traité comme background), des images à délai nul, etc.

> Page canonique: https://elysiatools.com/fr/tools/apng-idat-fdat-chunk-streaming-deflate-replay-and-disposal-method-analyzer

- **Catégorie:** Compression

- **Mots-clés:** APNG, PNG animé, fcTL, fdAT, acTL, dispose op, blend op, chunks PNG, CRC32, rejeu deflate, minutage

## Présentation

L'implémentation suit la spécification communautaire APNG de Mozilla : acTL doit précéder tout IDAT et num_frames doit égaler le nombre de fcTL (0 est invalide) ; chaque image a exactement un fcTL, et si l'image par défaut est la première, son fcTL doit précéder le premier IDAT avec la région complète (0,0,W,H) ; fcTL et fdAT partagent le même espace de numéros de séquence, croissants sans trou depuis 0, le désordre étant une erreur ; delay_den = 0 vaut 100 (centièmes de seconde) et delay_num = 0 impose d'afficher l'image suivante dès que possible ; un dispose_op previous sur la première image est traité comme background. Le flux compressé d'une image est la concaténation de ses IDAT (ou fdAT sans les 4 octets de séquence) et doit se décompresser exactement en h×(1+ceil(w×bpp/8)), byte de filtre par ligne inclus. Le CRC32 de chaque chunk et l'intégrité zlib sont rapportés séparément, avec la table des images, durée/fps, taux de compression, histogramme des chunks et l'audit sémantique dispose/blend.

## Entrées

- **Fichier PNG / APNG (≤20 Mo)** (file): sample-apng-3frame.png
- **Rejouer et vérifier les flux deflate IDAT/fdAT** (checkbox)

## Quand l'utiliser

- Pour diagnostiquer des artefacts visuels, des sauts d'images ou des problèmes de boucle sur une animation APNG.
- Pour vérifier l'intégrité structurelle des chunks PNG et l'exactitude des flux deflate lors du développement d'un encodeur APNG.
- Pour auditer le minutage des frames, les ratios de compression et la conformité des opérations dispose_op et blend_op avant la mise en production d'assets graphiques.

## Fonctionnement

- L'outil lit les en-têtes binaires du fichier PNG/APNG, valide la signature et calcule la somme CRC32 de chaque chunk rencontré.
- Il extrait les métadonnées globales depuis IHDR et acTL, puis analyse les paramètres de chaque image dans les chunks fcTL (dimensions, décalages, numéros de séquence, délais et modes dispose/blend).
- Si l'option de vérification deflate est activée, il extrait et décompresse les flux zlib issus des blocs IDAT et fdAT pour vérifier que les dimensions décompressées correspondent exactement aux lignes de balayage attendues.
- Il génère un rapport complet détaillant la chronologie des images, le calcul des fps, le taux de compression, l'histogramme des chunks et la liste des éventuelles non-conformités.

## Cas d'usage

- Contrôle qualité technique des stickers animés et emojis APNG pour plateformes de messagerie.
- Validation des encodeurs et bibliothèques graphiques open source générant des flux APNG.
- Détection et localisation des erreurs de corruption d'en-têtes dans des pipelines de compression d'images.

## Questions fréquentes

### Quelle est la différence entre les chunks IDAT et fdAT dans un APNG ?

Le chunk IDAT contient les données d'image de secours pour les lecteurs PNG standards (ou la première frame), tandis que les chunks fdAT contiennent les données compressées des images animées suivantes avec un préfixe de séquence.

### Pourquoi les numéros de séquence fcTL et fdAT doivent-ils être strictement continus ?

La spécification APNG impose un espace de numérotation séquentiel partagé débutant à 0 pour garantir la restitution des images dans l'ordre exact sans omission ni duplication de trames.

### Que fait l'option de vérification deflate ?

Elle décompresse chaque flux zlib concaténé pour s'assurer que la taille réelle décompressée équivaut exactement à la formule hauteur × (1 + octets par ligne) et vérifie l'absence de corruption d'Adler32.

### Comment le délai d'une image est-il calculé en cas de dénominateur nul ?

Conformément à la spécification APNG, si delay_den vaut 0, il est automatiquement normalisé à 100, ce qui correspond à une unité exprimée en centièmes de seconde.

### Mes fichiers d'animation sont-ils envoyés sur un serveur distant ?

Non, l'analyse binaire et le rejeu de décompression sont exécutés directement en mémoire dans votre navigateur.

## Outils associés

- [Extracteur de palette couleur depuis image](https://elysiatools.com/fr/tools/image-color-palette-extractor): Charge une image, extrait les couleurs dominantes et exporte des tokens reutilisables avec controle du contraste
- [Détecteur de Contenu d'Image NSFW](https://elysiatools.com/fr/tools/nsfw-image-detector): Détecteur de sécurité de contenu d'image alimenté par l'IA utilisant NSFWJS avec analyse de secours, supportant GIF/Animated WebP/APNG et JPEG/PNG/WEBP.
- [Convertisseur batch d'images en WebP](https://elysiatools.com/fr/tools/image-to-webp-batch-converter): Convertit des images ou les images d'un ZIP en WebP et renvoie une archive ZIP
- [Convertir JPEG en PNG](https://elysiatools.com/fr/tools/jpg-to-png): Convertir les images JPEG au format PNG avec prise en charge de la transparence et compression sans perte
- [Convertir PNG en PNG 8-bit](https://elysiatools.com/fr/tools/png-to-8bit-png): Convertir les images PNG en profondeur de couleur 8-bit pour une taille de fichier plus petite et une meilleure compatibilité
- [Convertir PNG en AVIF](https://elysiatools.com/fr/tools/png-to-avif): Convertir les images PNG au format AVIF avec compression de nouvelle génération et rapport qualité/taille supérieur
- [Convertir PNG en PNG Optimisé](https://elysiatools.com/fr/tools/png-to-optimized-png): Convertir les images PNG au format PNG optimisé avec des paramètres de compression avancés et la préservation de la qualité
- [Convertir PNG en TIFF](https://elysiatools.com/fr/tools/png-to-tiff): Convertir les images PNG au format TIFF avec options de compression et préservation de haute qualité

## Exemples

- [Exemples de Traitement d'Images Web Python](https://elysiatools.com/fr/samples/web-image-processing-python): Exemples de traitement d'images Web Python utilisant PIL/Pillow incluant la lecture, l'enregistrement, le redimensionnement et la conversion de format
- [Exemples PNG](https://elysiatools.com/fr/samples/png-samples): Images PNG d'échantillon dans différents rapports d'aspect et résolutions
- [Échantillons PNG](https://elysiatools.com/fr/samples/png-viewer-samples): Images d'exemple pour la visionneuse PNG
- [Exemples de Traitement d'Images Web Go](https://elysiatools.com/fr/samples/web-image-processing-go): Exemples de traitement d'images Web Go incluant lecture/écriture, redimensionnement et conversion de format
