PHP基于php_imagick_st-Q8.dll实现JPG合成GIF图片的方法

这篇文章主要介绍了PHP基于php_imagick_st-Q8.dll实现JPG合成GIF图片的方法,需要的朋友可以参考下

一、概述:

本文详解了PHP基于php_imagick_st-Q8.dll实现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。

三、PHP实现代码如下:

  1. <?php
  2. //定义JPG的图片序列
  3. $filelist = array(
  4. '1.jpg',
  5. '2.jpg',
  6. '3.jpg',
  7. '4.jpg'
  8. );
  9. $type = 'gif';
  10. $num = 200;
  11. $qian = 'new_';
  12. $path = './gif/';
  13. $is = 1;
  14. //生成gif图片的函数
  15. get_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. */
  25. function 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 . '<br />';
  51. echo "<img src='" . $path . $images . "' />";
  52. }
  53. else
  54. {
  55. echo '已生成gif图片: ' . $images . '<br />';
  56. }
  57. //删除原来保存的图片
  58. unlink($images);
  59. }
  60. ?>