Skip to content

Animated PNG (APNG) read support #4

@randy408

Description

@randy408

APNG is an unofficial extension by Mozilla, it allows for animated PNG files that work similarly to animated GIF files, while supporting 24-bit images and 8-bit transparency not available for GIFs.

This issue depends on #40 (row- and chunk callbacks)
This would be implemented without callbacks, it should be possible to reuse spng_decode_image() for decoding the APNG frames.

Implementation

  • Parse and validate acTL, fcTL chunks

  • Implement frame decoding / fdAT parsing

  • API

Testing

  • Create a libpng-apng repository: https://github.com/randy408/libpng-apng (update to v1.6.39) Went with another approach

  • Modify libpng's meson.build to enable APNG support

  • Replace the current libpng Meson wrap

  • Add APNG test images

  • Frame and metadata comparison tests against libpng

Other

  • Update seed corpus

  • Update fuzz target

Documentation

  • API Documentation

  • Document the new testsuite requirements for distro packagers

  • Update migration guide

  • Usage example

Depends on #10, #38

Metadata

Metadata

Assignees

No one assigned

    Labels

    APIInvolves additions and/or changes to the APIenhancementNew feature or request

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions