PHP使用JPG生成GIF动画图片

PHP使用JPG生成GIF动画图片

PHP使用php_imagick_st-Q8.dll类库,把JPG图片连接生成GIF动画图片,需要事先下载好php_imagick_st-Q8.dll,文件,并配置php.ini文件,启用php_imagick_st-Q8.dll。配置方法如下:

1、将下载的php_imagick_st-Q8.dll文件放到PHP默认的扩展目录,也就是:php/ext/目录内;

2、打开php.ini,在extension区域新加入此行,注意前面不要有“;”

extension=php_imagick_st-Q8.dll

3、重启apache或IIS。

4、PHP函数如下:

01

02//定义JPG的图片序列

03$filelist = array(

04 '1.jpg',

05 '2.jpg',

06 '3.jpg',

07 '4.jpg'

08);

09$type = 'gif';

10$num = 200;

11$qian = 'new_';

12$path = './gif/';

13$is = 1;

14//生成gif图片的函数

15get_img($filelist, $type, $num, $qian, $path, $is);

16/*

17 * get_img 图片合并,生成gif动态

18 * $filelist 要合并的图片数组

19 * $type 生成的类型

20 * $num 生成的帧数

21 * $qian 新文件名前缀

22 * $path 保持路径

23 * $is 是否预览

24 */

25function get_img($filelist, $type, $num, $qian, $path, $is)

26{

27 //初始化类

28 $animation = new Imagick();

29 //设置生成的格式

30 $animation->setFormat($type);

31 foreach ( $filelist as $file ){

32 $image = new Imagick();

33 $image->readImage( $file ); //合并图片

34 $animation->addImage( $image ); //加入到对象

35 $animation->setImageDelay($num); //设定图片帧数

36 unset( $image ); //清除内存里的图像,释放内存

37 }

38 //以下两行是调试时用的,测试是否生成了gif图片

39 //header( "Content-Type: image/gif" );

40 //echo( $animation->getImagesBlob() );

41 //生成的GIF文件名组合

42 $images = $qian . time(). '.' . $type;

43 //生成GIF图片

44 $animation->writeImages( $images,true );

45 //保存GIF到指定文件夹

46 copy($images, $path . $images);

47 //是否预览

48 if($is)

49 {

50 echo '已生成gif图片: ' . $images . '

';

51 echo "

";

52 }

53 else

54 {

55 echo '已生成gif图片: ' . $images . '

';

56 }

57 //删除原来保存的图片

58 unlink($images);

59}

60?>