Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Animated PNG (APNG) read support #4

Open
4 of 14 tasks
randy408 opened this issue Aug 8, 2019 · 4 comments · May be fixed by #252
Open
4 of 14 tasks

Animated PNG (APNG) read support #4

randy408 opened this issue Aug 8, 2019 · 4 comments · May be fixed by #252
Labels
API Involves additions and/or changes to the API enhancement New feature or request
Milestone

Comments

@randy408
Copy link
Owner

randy408 commented Aug 8, 2019

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

@randy408 randy408 added the API Involves additions and/or changes to the API label Aug 8, 2019
@randy408 randy408 changed the title APNG support APNG read support Aug 14, 2019
@randy408 randy408 mentioned this issue Aug 14, 2019
4 tasks
@randy408 randy408 added the enhancement New feature or request label Aug 22, 2019
@randy408 randy408 changed the title APNG read support Animated PNG (APNG) read support Dec 31, 2019
@randy408 randy408 added this to the 0.8.0 milestone Jan 13, 2020
@randy408 randy408 pinned this issue Jan 22, 2020
@randy408 randy408 unpinned this issue Aug 11, 2020
@Kochise
Copy link

Kochise commented Jul 30, 2021

Official Animated PNG format is MNG : http://www.libpng.org/pub/mng/

Reference pictures are here : http://www.libpng.org/pub/mng/mngpics.html

@MCOfficer
Copy link

MCOfficer commented Jul 30, 2021

Official Animated PNG format is MNG : http://www.libpng.org/pub/mng

Reference pictures are here : http://www.libpng.org/pub/mng/mngpics.html

Official or not, it is for all intents and purposes dead. It only made it into one major browser, from which it was removed later. APNG is playing in a different league.

In a way, it's the XHTML of png. (no html5-to-apng comparison intended)

@svgeesus
Copy link

svgeesus commented Mar 9, 2023

APNG is now part of PNG Third Edition rather than being documented in a separate extension document.

@randy408 randy408 pinned this issue May 16, 2023
@randy408 randy408 linked a pull request May 31, 2023 that will close this issue
@mkirkland4874
Copy link

Does this branch work for apng reading?? Or still more to be done to decode?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
API Involves additions and/or changes to the API enhancement New feature or request
Projects
None yet
Development

Successfully merging a pull request may close this issue.

5 participants