cloudhead / rx

👾 Modern and minimalist pixel editor
https://discord.gg/xHggPjfsS9
GNU General Public License v3.0
3.12k stars 109 forks source link

Can it output to apng or only gif? #13

Closed vi closed 5 years ago

cloudhead commented 5 years ago

In current master, only .gif (animated) and .png (non-animated) are supported outputs, and only .png is supported as input.

cloudhead commented 5 years ago

Wasn't aware of this format actually - I'll probably add support for it later down the line, maybe via the apng-encoder crate.

cloudhead commented 5 years ago

Rx now spits out an error if you try to save in an unsupported format.

ssokolow commented 4 years ago

Just a word of warning, anything which relies on the libpng reference implementation of PNG will never support APNG because it is an explicit violation of the PNG specification.

The first eight bytes of a PNG datastream always contain the following (decimal) values:

137 80 78 71 13 10 26 10

This signature indicates that the remainder of the datastream contains a single PNG image, consisting of a series of chunks beginning with an IHDR chunk and ending with an IEND chunk.

-- https://www.w3.org/TR/PNG/#5DataRep

PNG also does not support multiple images in one file. This restriction is a reflection of the reality that many applications do not need and will not support multiple images per file. In any case, single images are a fundamentally different sort of object from sequences of images. Rather than make false promises of interchangeability, we have drawn a clear distinction between single-image and multi-image formats. PNG is a single-image format.

-- https://www.w3.org/TR/PNG-Rationale.html

Mozilla, who created APNG because they disagreed with the conclusion of PNG's creators that Animated GIF was a mistake, maintain their own fork of libpng with APNG support to bundle with Firefox because of this.

cloudhead commented 4 years ago

Hmm interesting. I've moved towards writing one file per frame with the w/frames command (undocumented), as an alternative. It's easy to take that and produce whatever you want from it.