"Marcel Wouterse" on wrote... | Hi Anthony, | | Just for your information. A simple way of removing transparency from an | animated gif is: | | convert script_k.gif -coalesce -bordercolor limegreen -border 0 | script_k_limegreen.gif | | This as another way from your example page: | http://www.cit.gu.edu.au/~anthony/graphics/imagick6/animations/ | Thanks. Yes I know about that method. But I didn't want to destroy the existing heavy optimization that was preset in the image.
The -coalesce operator can also be use in other ways too. For example if you set all disposal methods to None, before using, you get a 'progressive -flatten' of the image on a transparent canvas. If you set disposal to "Background" you expand each layer to the full canvas size (transparent background), without -flattening them all together. But the animation examples have been put on hold, for development. It seemed that -coalesce was not doing the right thing. This I have now fixed, (v6.2.6-1) but because it has been fixed, we can now see the bugs and problems with using -deconstruct to optimize GIF animations. At the moment I am working on a whole set of new functions for 'layered' images. Specifically -layer optimize whcih will try its best to optimize a GIF animation, selecting the right disposal method to suit (including using "-dispose Previous"). This method is in the current IM beta v6.2.6-2 and optimizes most animations perfectly, but is currently broken for images involving heavy clearing pixels (like a moving transparent window). The problem it seems was that IM was thinking that fully-transparent red was NOT the same as fully-transparent blue, again another fix. You can look at some development of this in... IM Examples -- Miscellaneous -- Animation Operator Testing http://www.cit.gu.edu.au/~anthony/graphics/imagick6/misc/#animation Another addition planed is a -layers optimize-plus operator This is a advanced optimization that could actually add or remove frames of the animation to improve the overall size of the animation. EG add a zero delay frame, to clear pixels, in the next frame, seperate to the surrounding frame overlay of new pixels. I also plan a -layers optimize-transparency which makes any overlaid pixel that does not change the current image, transparent. This improves the compression of the animation, though not the frame size. I will NOT be adding any form of LZW algorithm optimization, (as provided by programs like "gifsicle") as this is a very complicated technique. Perhaps a set of special 'gif output formats' can call on these programs as delegates. If you can think of other -layer operation to apply to a seqience of images, please let me know, so I can try and implement it NOW. Anthony Thyssen ( System Programmer ) <[EMAIL PROTECTED]> ----------------------------------------------------------------------------- I am the terror that flaps in the night... Arr Heck... Lets get dangerous!!! -- Dark Wing Duck ----------------------------------------------------------------------------- Anthony's Home is his Castle http://www.cit.gu.edu.au/~anthony/ _______________________________________________ Magick-users mailing list [email protected] http://studio.imagemagick.org/mailman/listinfo/magick-users
