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: add support for APNG animated images #1222
Comments
Hey @SmaugPool! I don't think APNG makes much sense nowadays, especially in the context of imgproxy:
The main goal of APNG was full-color animations. However, the overwhelming majority of animations are still served as GIFs or MP4 created from GIFs. Actually, I didn't see a single APNG in the wild. |
Thank you for your answer @DarthSim, I know about existing formats and most of their pros/cons. I should have precised that my current use case is to transcode & rescale APNG to animated WebP/AVIF, not to get an APNG output. As you know very well from all its security features, That said for sure APNG is not trending so I understand supporting it is far from a priority. But once it is natively supported in |
@DarthSim For information, I asked more about it and one of the main reasons APNG is still used instead of Lossless Animated WebP is because Discord still does not support Animated WebP. For some projects, the ability to share media on social networks is very important and Discord is used a lot currently. |
APNG is now supported by all modern browsers: https://caniuse.com/apng
For now only the first frame of APNG animated images is considered by imgproxy as the format is backward compatible with PNG.
It would be great to be able to resize them as animated images when IMGPROXY_MAX_ANIMATION_FRAMES > 1.
Some patches are available for
libpng
, but it seems thatlibvips
is waiting forlibpng
official support, itself waiting forlibspng
support, which is in progress:libvips support: libvips/libvips#2000
libpng support: pnggroup/libpng#267
libspng support: https://github.com/randy408/libspng/projects/3
The text was updated successfully, but these errors were encountered: