一、概述:
本文详解了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
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
|
<?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 是否预览
*/
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() );
//生成的GIF文件名组合
$images = $qian . time(). '.' . $type ;
//生成GIF图片
$animation ->writeImages( $images ,true );
//保存GIF到指定文件夹
copy ( $images , $path . $images );
//是否预览
if ( $is )
{
echo '已生成gif图片: ' . $images . '<br />' ;
echo "<img src='" . $path . $images . "' />" ;
}
else
{
echo '已生成gif图片: ' . $images . '<br />' ;
}
//删除原来保存的图片
unlink( $images );
}
?>
|