# Анализатор APNG: чанки IDAT/fdAT, повтор deflate и методы disposal с таймингом кадров

Загрузите PNG/APNG и разберите структуру анимации: подпись PNG и проверка CRC32 каждого чанка, IHDR (глубина/тип цвета/интерлейс), acTL (число кадров и повторов, обязан стоять до первого IDAT), fcTL (порядковый номер, ограничение области x+y+w+h ≤ холста, нормализация delay_num/delay_den, dispose_op none/background/previous, blend_op source/over), первый кадр IDAT + последующие через fdAT; общие номера fcTL+fdAT должны расти без пропусков с нуля; поток deflate каждого кадра воспроизводится с проверкой размера распаковки = высота × (1 + байтов на строку), повреждённый zlib фиксируется; симуляция disposal предупреждает о previous в первом кадре (трактуется как background), кадрах с нулевой задержкой и т. п.

> Каноническая страница: https://elysiatools.com/ru/tools/apng-idat-fdat-chunk-streaming-deflate-replay-and-disposal-method-analyzer

- **Категория:** Compression

- **Ключевые слова:** APNG, анимированный PNG, fcTL, fdAT, acTL, dispose op, blend op, чанки PNG, CRC32, повтор deflate, тайминг кадров

## Обзор

Реализация следует общественной спецификации APNG от Mozilla: acTL обязан стоять до любого IDAT, а num_frames — равняться числу fcTL (0 недопустим); на каждый кадр ровно один fcTL, и если изображение по умолчанию — первый кадр, его fcTL стоит до первого IDAT с областью (0,0,W,H); fcTL и fdAT делят одно пространство номеров, монотонно без пропусков с нуля, неупорядоченность — ошибка; delay_den = 0 трактуется как 100 (сотые доли секунды), delay_num = 0 — выводить следующий кадр как можно быстрее; dispose_op previous в первом кадре трактуется как background. Сжатый поток кадра — конкатенация его IDAT (или fdAT без 4 байт номера) и должен распаковываться ровно в h×(1+ceil(w×bpp/8)) с учётом байта фильтра на строку. CRC32 каждого чанка и целостность zlib отчуждаются отдельно; на выходе — таблица кадров, длительность/fps, степень сжатия, гистограмма чанков и семантический аудит dispose/blend.

## Входные данные

- **Файл PNG / APNG (≤20 МБ)** (file): sample-apng-3frame.png
- **Повторить и проверить потоки deflate IDAT/fdAT** (checkbox)

## Когда использовать

- Отладка артефактов воспроизведения и рассинхронизации таймингов APNG в браузерах или мобильных приложениях.
- Валидация файлов, сгенерированных графическими редакторами и конвертерами, на строгое соответствие спецификации APNG от Mozilla.
- Проверка целостности потоков zlib в чанках IDAT/fdAT и выявление ошибок контрольных сумм CRC32 после сжатия.

## Как это работает

- Загрузите файл изображения формата PNG или APNG размером до 20 МБ.
- При необходимости включите опцию проверки и повторной распаковки потоков сжатия Deflate (verifyDeflate).
- Изучите итоговый отчет с таблицей кадров, длительностью, fps, анализом методов dispose/blend, последовательностью номеров чанков и перечнем ошибок.

## Сценарии использования

- Диагностика сбоев рендеринга APNG-анимаций, некорректных частот кадров и поврежденных контрольных сумм CRC32.
- Тестирование программных энкодеров APNG на предмет правильной расстановки чанков acTL, fcTL и fdAT.
- Аудит операций наложения (blend_op) и очистки (dispose_op) для оптимизации частичной перерисовки областей холста.

## Частые вопросы

### Что означает ошибка нарушения нумерации чанков (sequence gap)?

В APNG чанки fcTL и fdAT делят единое пространство номеров, которое обязано непрерывно возрастать с 0 без пропусков и дублей.

### Как обрабатывается метод dispose_op 'previous' на первом кадре?

По спецификации APNG для самого первого кадра операция previous автоматически понижается до background, так как предыдущего состояния холста нет.

### Что происходит, если в чанке fcTL знаменатель delay_den равен 0?

Значение delay_den = 0 по стандарту нормализуется и трактуется декодерами как 100 (сотые доли секунды).

### Зачем запускать повторную проверку Deflate?

Она распаковывает поток каждого кадра и сверяет результирующий размер с геометрией холста с учетом байтов фильтрации строк, выявляя битые zlib-блоки.

### Почему чанк acTL должен стоять строго перед первым IDAT?

Это фундаментальное требование формата APNG, позволяющее декодеру распознать наличие анимации до чтения первого кадра по умолчанию.

## Связанные инструменты

- [Извлечение палитры из изображения](https://elysiatools.com/ru/tools/image-color-palette-extractor): Загружает изображение, извлекает доминирующие цвета и экспортирует токены для кода с проверкой контраста
- [Детектор контента изображений NSFW](https://elysiatools.com/ru/tools/nsfw-image-detector): Детектор безопасности контента изображений на базе ИИ с использованием NSFWJS и резервным анализом, поддерживающим GIF/Animated WebP/APNG и JPEG/PNG/WEBP.
- [Пакетный конвертер изображений в WebP](https://elysiatools.com/ru/tools/image-to-webp-batch-converter): Преобразует изображения или изображения из ZIP в WebP и возвращает ZIP
- [Конвертировать JPEG в PNG](https://elysiatools.com/ru/tools/jpg-to-png): Преобразование изображений JPEG в формат PNG с поддержкой прозрачности и сжатием без потерь
- [Конвертировать PNG в 8-битный PNG](https://elysiatools.com/ru/tools/png-to-8bit-png): Преобразование изображений PNG в 8-битную глубину цвета для уменьшения размера файла и улучшения совместимости
- [Конвертировать PNG в AVIF](https://elysiatools.com/ru/tools/png-to-avif): Преобразование изображений PNG в формат AVIF с компрессией следующего поколения и превосходным соотношением качества и размера
- [Конвертировать PNG в оптимизированный PNG](https://elysiatools.com/ru/tools/png-to-optimized-png): Преобразование изображений PNG в оптимизированный формат PNG с расширенными настройками сжатия и сохранением качества
- [Конвертировать PNG в TIFF](https://elysiatools.com/ru/tools/png-to-tiff): Преобразование изображений PNG в формат TIFF с опциями сжатия и сохранением высокого качества

## Примеры

- [Примеры Обработки Изображений Web Python](https://elysiatools.com/ru/samples/web-image-processing-python): Примеры обработки изображений Web Python используя PIL/Pillow включая чтение, сохранение, изменение размера и преобразование формата
- [PNG Примеры](https://elysiatools.com/ru/samples/png-samples): Примеры PNG-изображений в разных соотношениях сторон и разрешениях
- [Образцы PNG](https://elysiatools.com/ru/samples/png-viewer-samples): Образцы изображений для браузерного PNG просмотрщика
- [Примеры Обработки Изображений Web Go](https://elysiatools.com/ru/samples/web-image-processing-go): Примеры обработки изображений Web Go включая чтение/запись, изменение размера и конвертацию форматов
