php将多张jpg图片生成gif动态图片的代码

2013 年 4 月 22 日4150

/*

图片合并需要

1 下载 php_imagick_st-Q8.dll

并将其放入 php/ext/

2 在php.ini 中加入

extension=php_imagick_st-Q8.dll

重启apache (web 服务器)

3 访问phpinfo

*/

//参数设置

$filelist = array(

'1.jpg',

'2.jpg',

'3.jpg',

'4.jpg'

);

$type = 'gif';

$num = 200;

$qian = 'new_';

$path = './tupian/';

$is = 1;

//调用函数生成gif图片

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

/**

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

*

* $filelist 要合并的图片数组

* $type 生成的类型

* $num 生成的帧数

* $qian 新文件名前缀

* $path 保持路径

* $is 是否预览

*

*/

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

{

//初始化类

$animation = new Imagick();

//设置生成的格式

$animation->setFormat($type);

foreach ( $filelist as $file ){

$image = new Imagick();

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

$animation->addImage( $image ); //加入到刚才建立的对象

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

unset( $image ); //消除内存里的图像资源

}

//调试是否生成gif图片

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

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

//新图片文件名组合

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

//生成图片

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

//保存都指定目录

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

//是否预览

if($is)

{

echo '已生成gif图片: ' . $images . '<br />';

echo "<img src='" . $path . $images . "' />";

}

else

{

echo '已生成gif图片: ' . $images . '<br />';

}

//删除最先保存的图片

unlink($images);

}

0 0