I also see a good first frame and back later frames. this is nothing to do with coalesce, but with the GIF reading itself.
Using a old format specific program "giftrans"....
Animation has a global color table of 16 colors, with no transparent flag set for the first frame.
But then uses a Transparent color index (16) for the 3 later frames!
The problem is not with -coalesce but with IM GIF reading. The GIF coder is not handling a global color table with transparency off with later images that use that same color table, and transparency on.
Or perhaps the result is being overlayed on the normally unused background color (color index 0)
---------------------
This is the SAME bug I have reported (three times so far) with GIF reading, for the last few years.
That is when the GIF image (actually written by imageMagick this time) contains no transparency on the first frame and has transparency in later frames, IM fails to read it back into memory correctly...
For example...
First create a "Dispose Background" test animation
Code: Select all
convert -delay 100 -dispose none \
-size 100x100 xc:SkyBlue +antialias \
-fill DodgerBlue -draw 'circle 50,50 15,25' \
-dispose background \
-page +5+10 balloon.gif \
-page +35+30 medical.gif \
-page +62+50 present.gif \
-page +10+55 shading.gif \
-loop 0 canvas_bgnd.gif
Now make a
-layers Dispose version
Code: Select all
convert canvas_bgnd.gif -layers Dispose canvas_bgnd_dispose.gif
This animation works perfectly.... Showing transparency...
But if IM tried to read it (and write it again), all the transparency disappears!!!!
Code: Select all
convert canvas_bgnd_dispose.gif canvas_bgnd_dispose_rw.gif
The problem is ONlY in GIF reading, as after reading the images in memory (all fully coalesce already) do not show the transparency they should! As it displays correctly the write part of GIF coder is correct, in it only the READ that is failing.