List Info

Thread: Remove Transparency from an animation




Remove Transparency from an animation
user name
2006-02-13 01:21:11
"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/imagic
k6/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/im
agick6/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 )    <A.Thyssengriffith.edu.au>
 -----------------------------------------------------------
------------------
     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
Magick-usersimagemagick.org
http://studio.imagemagick.org/mailman/listinfo/magick
-users
[1]

about | contact  Other archives ( Real Estate discussion Medical topics )