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实现代码如下:
<?php
//定义JPG的图片序列
$filelist=array(
'1.jpg',
'2.jpg',
'3.jpg',
'4.jpg'
);
$type='gif';
$num=200;
$qian='new_';
$path='./gif/';
$is=1;
//生成gif图片的函数
get_img($filelist,$type,$num,$qian,$path,$is);
/*
*get_img图片合并,生成gif动态
*$filelist要合并的图片数组
*$type生成的类型
*$num生成的帧数
*$qian新文件名前缀
*$path保持路径
*$is是否预览
*/
functionget_img($filelist,$type,$num,$qian,$path,$is)
{
//初始化类
$animation=newImagick();
//设置生成的格式
$animation->setFormat($type);
foreach($filelistas$file){
$image=newImagick();
$image->readImage($file);//合并图片
$animation->addImage($image);//加入到对象
$animation->setImageDelay($num);//设定图片帧数
unset($image);//清除内存里的图像,释放内存
}
//以下两行是调试时用的,测试是否生成了gif图片
//header("Content-Type:image/gif");
//echo($animation->getImagesBlob());
//生成的GIF文件名组合
$images=$qian.time().'.'.$type;
//生成GIF图片
$animation->writeImages($images,true);
//保存GIF到指定文件夹
copy($images,$path.$images);
//是否预览
if($is)
{
echo'已生成gif图片:'.$images.'<br/>';
echo"<imgsrc='".$path.$images."'/>";
}
else
{
echo'已生成gif图片:'.$images.'<br/>';
}
//删除原来保存的图片
unlink($images);
}
?>