如何使用PHP的Imagick将多个PNG转换为单个动画GIF

时间:2013-12-24 19:47:21

标签: php imagemagick png gif imagick

我有几个PNG格式的Imagick对象,它们用作动画GIF的单独帧。如何将这些帧转换为单个动画GIF?

1 个答案:

答案 0 :(得分:3)

您将要将每个文件附加到图像魔术对象。看看这个答案,其中包含一个用于创建动画gif的优秀代码示例:

Make an animated GIF with PHP's ImageMagick API

您可能需要使用writeimages方法完成gif创建,而上述示例中缺少该方法:http://www.php.net/manual/en/imagick.writeimages.php

我不确定这是否有用,但我使用imagemagic在Ruby中创建了GIF动画。下面的代码是我所做的简单示例。我希望这很有用,可以让你了解如何构建你的程序。

require 'rubygems'
require 'rmagick'
include Magick

dir_contents = Dir.glob("xmas_tree_files/*.gif")

image_list = ImageList.new
image_list.delay = 20 # delay 1/5 of a second between images.

dir_contents.each do |file_name|
  image = Image.read("#{file_name}").first
  image_list << image
end

#make sure to write the animated gif to a different dir 
#than the one that contains your original images,
#otherwise you'll get weirdly animated gifs when you rerun the program
image_list.write("animated_tree.gif")