how to make a high quality animated image with imagemagick

14,289

The problem is that your source PNGs have an alpha channel which is not supported by GIFs. So you have to remove transparency from your source images first. Since you're dealing with multiple source images, you can't use the -flatten method. With newer ImageMagick versions the following should work:

convert -background white -alpha remove -layers OptimizePlus -delay 25x100 ps1-*.png -loop 0 ps1.gif

If your version of ImageMagick is older than 6.7.5, you can try:

convert -bordercolor white -border 0 -layers OptimizePlus -delay 25x100 ps1-*.png -loop 0 ps1.gif

I got the following result with the latter command:

animation

Share:
14,289
Mee
Author by

Mee

Updated on June 08, 2022

Comments

  • Mee
    Mee almost 2 years

    I want to make an animated gif from those .png image:

    enter image description hereenter image description hereenter image description hereenter image description here

    I do it with this command:

    convert -layers OptimizePlus -delay 25x100 ps1-*.png -loop 0 ps1.gif
    

    It made an animated gif successfully, however, the output has very low quality and smaller than input images:

    enter image description here

    After some search, I got -quality

    convert -layers OptimizePlus -delay 25x100 -quality 99 ps1-*.png -loop 0 ps1.gif
    

    But it seems like imagemagick just ignore the parameter.

  • Hai Zhang
    Hai Zhang over 5 years
    GIF does support transparency. The result GIF posted in the question is transparent.
  • nwellnhof
    nwellnhof over 5 years
    @DreaminginCode But GIF only supports fully transparent pixels and no alpha channel. That's why you get the jagged edges.
  • Hai Zhang
    Hai Zhang over 5 years
    But there are still plenty of transparent GIFs and a common way people achieve it is to actually only place the semi-transparent pixels on a white background, so that in most cases the edge does not seem to be aliased. There is a border matte option in Photoshop when exporting GIFs, but I haven't find a good way for imagemagick yet.