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

Feature Request: support APNG decoding #98

Open
eustas opened this issue Aug 9, 2019 · 2 comments
Open

Feature Request: support APNG decoding #98

eustas opened this issue Aug 9, 2019 · 2 comments

Comments

@eustas
Copy link

eustas commented Aug 9, 2019

APNG is very simple extension over the PNG spec.

For basic support only one thing is required - pull the piece that decodes IDAT contents to API level.

fDAT chunk is basically uint32 "sequence number" plus IDAT contents.

@lvandeve
Copy link
Owner

Interesting idea to expose some internals to allow an external APNG implementation.

The piece that decodes IDAT is multiple pieces at the least:

-the part that takes the zlib stream out of one or more successive IDAT chunks, and that zlib decodes this (those are relatively simple, the zlib decoding is already part of the API),

-the part that outputs the pixels: this handles the PNG filters, the color encoding, interlacing, ... This is the one that is the most interesting to expose in the API for this, and should be able to take custom widths and heights

I'll consider this, but need to find some time and I'd like to ensure it's done in a good way, to not get regrets that can't easily be fixed in a backwards compatible way later (like some exposed API now unfortunately is ;))

@jonsneyers
Copy link

+1 on this feature request. Provided the application handles getting/setting the animation/frame info chunks, this would mainly require access to a lower level read/write api that can be used both for IDAT and for fDAT.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants