如果您具有imagemagick访问权限,则可以执行以下操作:
system("convert big.gif -coalesce coalesce.gif");
system("convert -size 200x100 coalesce.gif -resize 200x10 small.gif");
如果您没有system()访问权限,则最有可能使用imagemagick插件
注意:这可能会产生较大的文件大小,但图像尺寸较小,这是由于合并会导致图像的最佳性能下降。
更新: 如果您没有ImageMagick访问权限,则应该能够使用以下步骤的组合来调整动画gif的大小(假设您具有GD访问权限):
检测图像是否为动画gif:我可以使用php和gd检测动画gif吗?(最佳答案)
将动画gif分成单独的帧:http : //www.phpclasses.org/package/3234-PHP-Split-GIF-animations-into-multiple-images.html
调整各个框架的大小:http://www.akemapa.com/2008/07/10/php-gd-resize-transparent-image-png-gif/
再次将帧重新合成为动画gif:http : //www.phpclasses.org/package/3163-PHP-Generate-GIF-animations-from-a-set-of-GIF-images.html
这肯定比ImageMagick路线要密集得多,但从技术上讲应该是可以的。
如果您能正常使用,请与世界分享!