¿Qué es el formato de archivo APNG?
PNG animado, o APNG, amplía PNG con múltiples fotogramas, temporización de fotogramas y reproducción en bucle. Conserva píxeles a todo color y transparencia alfa en lugar de usar el modelo de paleta restringida de GIF.
Cómo funciona el formato de archivo APNG
PNG animado comenzó como una extensión de Mozilla y pasó a formar parte de la especificación oficial de PNG con su tercera edición, una recomendación del W3C desde junio de 2025. Un flujo APNG es un flujo PNG normal más tres tipos de bloques: acTL declara la animación e indica el número de fotogramas y de reproducciones (0 significa repetir en bucle indefinidamente), fcTL describe un fotograma y fdAT contiene los datos de los fotogramas en la misma forma que IDAT, precedidos de un número de secuencia. Cada fotograma se comprime sin pérdida y usa la misma profundidad de bits, tipo de color y paleta que la imagen estática, por lo que un APNG puede usar color verdadero con alfa completo o basarse en una paleta. Un fotograma puede cubrir solo parte del lienzo: su bloque fcTL indica una anchura, una altura y un desplazamiento dentro de las dimensiones de la imagen.
Datos clave
- Un APNG no se puede distinguir de un PNG por su firma ni, en la práctica, por su nombre. Ambos comienzan con los mismos ocho bytes y, aunque
image/apngy.apngestán registrados, MDN también incluye.pngcomo extensión de APNG. Lo que identifica un archivo como animado es un bloqueacTLantes del primer bloqueIDAT. Para encontrarlo, recorre los bloques después de la firma: cada uno comienza con una longitud de datos de cuatro bytes y un tipo de cuatro bytes, seguidos de los datos y un CRC de cuatro bytes. - Un decodificador sin compatibilidad con APNG ignora los bloques de animación y muestra la imagen estática. Esa imagen es el primer fotograma de la animación solo cuando un bloque
fcTLprecede aIDAT; de lo contrario, no forma parte de la animación. La especificación PNG advierte que un archivo puede combinar una imagen estática sin relación con su animación y que esto podría usarse para eludir la moderación, así que revisa los fotogramas de la animación o genera miniaturas de ellos, no solo de la imagen estática. - Los fotogramas son instrucciones para actualizar un lienzo, no siempre imágenes completas. Cada bloque
fcTLestablecedispose_op(dejar la región como está, borrarla con negro transparente o restaurar el contenido anterior) yblend_op(reemplazar la región o aplicar composición alfa sobre ella). Una herramienta que extraiga los datos de un fotograma como imagen independiente, o que vuelva a hacer encoding de los fotogramas, sin aplicar estas reglas puede generar imágenes parciales o con una composición incorrecta. Los retrasos son fracciones de segundo (delay_numdividido entredelay_den, con un denominador cero que se interpreta como 100); un numerador cero solicita el siguiente fotograma lo antes posible, y los visualizadores pueden imponer un límite mínimo. - La lectura de todos los fotogramas suele requerir una selección explícita. La lista de formatos de ImageMagick indica que un APNG debe leerse con un prefijo
apng:explícito; de lo contrario, «asume que es una imagen PNG y solo lee el primer fotograma», y queffmpegdebe estar en la ruta de búsqueda de ejecutables. Cuando se lee como un PNG normal, el archivo proporciona su imagen estática según la especificación PNG, por lo que ese «primer fotograma» no forma necesariamente parte de la animación. sharp tiene una solicitud de función abierta para APNG y un informe de un usuario que indica que solo se cambió el tamaño del primer fotograma. El desmultiplexor APNG de FFmpeg ignora de forma predeterminada el número de repeticiones del archivo (-ignore_loop), y su multiplexor establece la repetición con-plays, donde 0 repite en bucle indefinidamente.
Cuándo es relevante el formato de archivo APNG
Usa APNG para animaciones cortas de interfaz, stickers e indicadores de carga que necesiten color de 24 bits o un canal alfa de 8 bits, que el color indexado de 8 bits y el único índice de color transparente de GIF no pueden proporcionar. APNG solo ofrece compresión sin pérdida, así que cabe esperar archivos grandes para animaciones fotográficas o largas; la guía de formatos de MDN considera que AVIF y WebP ofrecen un mejor rendimiento, pero tienen una compatibilidad menos extendida. Las versiones actuales de Chrome, Edge, Firefox, Opera y Safari muestran APNG, y el software sin compatibilidad con APNG muestra en su lugar la imagen estática del archivo.
Cómo ayuda Transloadit con el formato de archivo APNG
La tabla de formatos de imagen de Transloadit incluye APNG entre los formatos que sus Robots basados en ImageMagick, incluido /image/resize, pueden leer y escribir, y su tabla de formatos de audio y video incluye un formato apng que los Robots basados en FFmpeg, como /video/encode, pueden leer y escribir.
Las tablas indican qué puede leer y escribir cada stack, pero no si la animación se conserva al pasar por un Step determinado. La documentación de /image/resize describe sus parámetros frame y flatten solo para GIF animado y no indica cómo se trata un APNG llamado .png. No se ejecutó ninguna Assembly para esta entrada, así que procesa un APNG representativo con la tuya y comprueba el número de fotogramas del resultado.
- Formatos de imagen según el stack de ImageMagick
- Formatos de audio y video según el stack de FFmpeg
- Robot de cambio de tamaño de imágenes
Explora los formatos de archivo y las capacidades de compresión de Transloadit
Fuentes
- Especificación PNG del W3C (tercera edición): estructura de APNG (sección 4.9), firma y disposición de bloques (secciones 5.2–5.3), bloques acTL, fcTL y fdAT (11.3.6), registro de image/apng y sus consideraciones de seguridad (A.2)
- MDN: guía de tipos y formatos de archivos de imagen (secciones APNG y GIF)
- Can I use: PNG animado (APNG)
- Formatos de imagen de ImageMagick: fila APNG (especificador explícito apng:, requisito de ffmpeg)
- Documentación de formatos de FFmpeg: desmultiplexor apng (sección 3.3) y multiplexor apng (sección 4.14)
- Incidencia de sharp n.º 3195: al cambiar el tamaño de un APNG solo se guardó el primer fotograma
- Incidencia de sharp n.º 2375: compatibilidad con APNG (solicitud de función abierta)