[Interest] APNG support for QImageReader
Bennett Ramirez
bennett.ramirez at gmail.com
Mon Jul 24 00:11:52 CEST 2017
Hello,
I am the current maintainer for a very niche game that works kind of
like an animated chatroom. After having been transferred the rights to
the project by its former maintainer, I have been receiving some
grumbling from modders/content creators of the game due to the limiting
nature of GIF - only 1-bit transparency, forced indexed colors,
questionably ineffective compression, and so on.
Since all of the assets of the game are essentially animated images, I
have been shopping around for other well-endorsed animated image formats
(including APNG, WebP, MNG, and just sticking to GIF), and concluded
that APNG, while being somewhat nonstandard, is the best option for the
game, as it gives the smallest file size (according to this site:
http://littlesvr.ca/apng/gif_apng_webp.html), provides flexibility (in
terms of the danger of losing color depth from dithering), and has
relatively recently received support by the major desktop browsers.
However, I haven't seen any talk at all of APNG support except in
QtWebKit, but my game obviously does not use QtWebKit. I don't know
about MNG support, as it's even less heard of than APNG and probably
could get dropped support at any time; and I'm eyeing WebP since there
is good support for it, although the larger size in animation would
defeat the purpose of moving away from GIF. Perhaps WebM could be
another alternative, but the animated images in question are all less
than 15 frames per second and are anime-style line art, so I'm not sure
how well WebM could be assured to keep the animation lossless. Moreover,
it's not supported by QImageReader.
So, I'm assuming that nobody has really ever needed to use APNG in their
Qt project, and the people who needed APNG ended up building a
full-fledged, in-house solution to the problem or used an external
library. If this is the case, what is my recommended route for using
high-quality/lossless animated images? Would the canonical solution be
to just split all of the frames into PNG images, load them all in with
some kind of sprite definition file, and then play them back as an
animation? Would it even be justifiable, in this case, to create an
original file format to handle these specific needs?
Sorry if I ask too many questions. Thanks for your help.
More information about the Interest
mailing list