Thanks! On Sunday, 5 February 2017 01:25:21 UTC, Nigel Tao wrote: > > On Mon, Jan 23, 2017 at 6:03 AM, kalekold via golang-nuts > <golan...@googlegroups.com <javascript:>> wrote: > > Hmm.. the source gif I'm using must be compressed. Doesn't Go handle > > compressed gifs in the same way? When you say 'I may get unexpected > results' > > is that because the current gif package doesn't support compression? > > A GIF image is a sequence of frames. Some frames are complete > pictures, some frames contain only those pixels that changed from the > previous frame. (If you're familiar with video formats like MPEG, you > might recognize these concepts as I-frames and P-frames). > > The second type of frame, delta frames or P-frames, often encode much > smaller since they're often mostly transparent, and so are sometimes > called "compressed" GIFs. Both sorts of frames also use LZW > compression, but that's probably not what we're discussing here. > > The Go image/gif package supports complete and delta frames. As per > the GIF spec (http://www.w3.org/Graphics/GIF/spec-gif89a.txt), the > package calls this the disposal method. Support means that decoding a > GIF image will give you the per-frame disposal methods, and passing a > slice of per-frame disposal methods to Encode will produce a well > formatted GIF. > > However, the package does not apply the deltas to previous frames for > you. If you want to load an animated GIFs and replace some frames, it > is up to the user of the image/gif package (i.e. you) to apply the > deltas when decoding, or re-calculate the deltas when encoding. Or you > can set decoded.Disposal[i] to gif.DisposalNone to change the frame > from a P-frame to an I-frame, but that might lead to a larger GIF > file. >
-- You received this message because you are subscribed to the Google Groups "golang-nuts" group. To unsubscribe from this group and stop receiving emails from it, send an email to golang-nuts+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.