# Analisador APNG de chunks IDAT/fdAT, replay deflate e métodos de disposal com temporização de quadros

Envie um PNG/APNG e analise a estrutura da animação: assinatura PNG e verificação CRC32 por chunk, IHDR (profundidade/tipo de cor/entrelaçado), acTL (número de quadros e repetições, antes do primeiro IDAT), fcTL (número de sequência, restrição de região x+y+w+h ≤ canvas, normalização delay_num/delay_den, dispose_op none/background/previous, blend_op source/over), primeiro quadro IDAT + seguintes via fdAT; os números de sequência compartilhados fcTL+fdAT devem crescer sem lacunas a partir de 0; o fluxo deflate de cada quadro é reproduzido conferindo o tamanho descomprimido = altura × (1 + bytes por linha), zlib corrompido é relatado; a simulação de disposal alerta sobre previous no primeiro quadro (tratado como background), quadros com atraso zero etc.

> Página canônica: https://elysiatools.com/pt/tools/apng-idat-fdat-chunk-streaming-deflate-replay-and-disposal-method-analyzer

- **Categoria:** Compression

- **Palavras-chave:** APNG, PNG animado, fcTL, fdAT, acTL, dispose op, blend op, chunks PNG, CRC32, replay deflate, temporização

## Visão geral

A implementação segue a especificação comunitária APNG da Mozilla: acTL deve preceder qualquer IDAT e num_frames deve igualar o número de fcTL (0 é inválido); cada quadro tem exatamente um fcTL, e se a imagem padrão é o primeiro quadro, seu fcTL deve vir antes do primeiro IDAT com a região completa (0,0,W,H); fcTL e fdAT compartilham o mesmo espaço de numeração de sequência, crescentes sem lacunas desde 0, desordem sendo erro; delay_den = 0 conta como 100 (centésimos de segundo) e delay_num = 0 significa renderizar o próximo quadro o quanto antes; dispose_op previous no primeiro quadro é tratado como background. O fluxo comprimido de um quadro é a concatenação dos seus IDAT (ou fdAT sem os 4 bytes de sequência) e deve descomprimir exatamente em h×(1+ceil(w×bpp/8)), incluindo o byte de filtro por linha. O CRC32 por chunk e a integridade zlib são relatados separadamente, junto com a tabela de quadros, duração/fps, razão de compressão, histograma de chunks e a auditoria semântica de dispose/blend.

## Entradas

- **Arquivo PNG / APNG (≤20MB)** (file): sample-apng-3frame.png
- **Reproduzir e verificar os fluxos deflate IDAT/fdAT** (checkbox)

## Quando usar

- Validar se um arquivo APNG atende estritamente às especificações da Mozilla antes do deploy em produção.
- Identificar problemas de renderização causados por saltos de sequência em blocos fcTL/fdAT ou erros de CRC32.
- Verificar a integridade do fluxo deflate zlib e inspecionar a temporização exata (delay_num/delay_den) de cada quadro.

## Como funciona

- Lê a assinatura PNG e inspeciona os chunks essenciais IHDR e acTL, verificando posicionamento, contagem total de quadros e repetições de loop.
- Mapeia todos os chunks fcTL, IDAT e fdAT, conferindo o incremento contínuo dos números de sequência a partir de 0 e os limites de coordenadas (x, y, w, h) na tela.
- Executa o replay opcional do fluxo deflate, descomprimindo cada quadro para validar bytes por linha de varredura, integridade zlib e regras de dispose_op/blend_op.

## Casos de uso

- Auditoria técnica de adesivos animados e emojis em plataformas de mensagens que utilizam o formato APNG.
- Depuração de pipelines gráficos automatizados que exportam animações com offsets ou sequências corrompidas.
- Análise de desempenho e taxa de compressão para otimizar tempo de exibição e tamanho de quadros individuais.

## Perguntas frequentes

### O que acontece se o acTL declarar mais quadros do que os blocos fcTL existentes?

O analisador sinaliza uma inconformidade semântica, indicando a diferença entre os quadros declarados e os chunks fcTL reais.

### Como a ferramenta lida com a opção verifyDeflate ativada?

Ela descompacta os fluxos comprimidos de cada quadro, confirmando a integridade zlib/Adler32 e o tamanho exato em bytes calculados pelo IHDR.

### O que ocorre se o primeiro quadro definir dispose_op como previous?

A especificação APNG exige que 'previous' no primeiro quadro seja rebaixado e tratado como 'background', detalhe reportado na análise.

### Como são calculadas frações de atraso quando delay_den é zero?

De acordo com o padrão APNG, um valor delay_den igual a 0 é normalizado automaticamente para 100 (centésimos de segundo).

### Qual é o limite de tamanho de arquivo aceito pelo analisador?

O analisador aceita arquivos PNG ou APNG com tamanho de até 20 MB.

## Ferramentas relacionadas

- [Extrator de paleta de cores da imagem](https://elysiatools.com/pt/tools/image-color-palette-extractor): Envia uma imagem, extrai cores dominantes e exporta tokens prontos para codigo com checagem de contraste
- [Detector de Conteúdo de Imagem NSFW](https://elysiatools.com/pt/tools/nsfw-image-detector): Detector de segurança de conteúdo de imagem alimentado por IA usando NSFWJS com análise de backup, suportando GIF/Animated WebP/APNG e JPEG/PNG/WEBP.
- [Conversor em lote de imagens para WebP](https://elysiatools.com/pt/tools/image-to-webp-batch-converter): Converte imagens ou imagens dentro de um ZIP para WebP e retorna um ZIP
- [Converter JPEG para PNG](https://elysiatools.com/pt/tools/jpg-to-png): Converte imagens JPEG para formato PNG com suporte a transparência e compressão sem perda
- [Converter PNG para PNG de 8 bits](https://elysiatools.com/pt/tools/png-to-8bit-png): Converte imagens PNG para profundidade de cor de 8 bits para tamanho de arquivo menor e melhor compatibilidade
- [Converter PNG para AVIF](https://elysiatools.com/pt/tools/png-to-avif): Converte imagens PNG para formato AVIF com compressão de próxima geração e superior relação qualidade/tamanho
- [Converter PNG para PNG Otimizado](https://elysiatools.com/pt/tools/png-to-optimized-png): Converte imagens PNG para formato PNG otimizado com configurações avançadas de compressão e preservação de qualidade
- [Converter PNG para TIFF](https://elysiatools.com/pt/tools/png-to-tiff): Converte imagens PNG para formato TIFF com opções de compressão e preservação de alta qualidade

## Exemplos

- [Exemplos de Processamento de Imagem Web Python](https://elysiatools.com/pt/samples/web-image-processing-python): Exemplos de processamento de imagem Web Python usando PIL/Pillow incluindo leitura, salvamento, redimensionamento e conversão de formato
- [Exemplos PNG](https://elysiatools.com/pt/samples/png-samples): Imagens PNG de exemplo em diferentes proporções e resoluções
- [Amostras PNG](https://elysiatools.com/pt/samples/png-viewer-samples): Imagens de amostra para o visualizador PNG
- [Exemplos de Processamento de Imagem Web Go](https://elysiatools.com/pt/samples/web-image-processing-go): Exemplos de processamento de imagem Web Go incluindo leitura/escrita, redimensionamento e conversão de formato
