我有几个PNG格式的Imagick对象,它们用作动画GIF的单独帧。如何将这些帧转换为单个动画GIF?
答案 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")