一、概述:
本文詳解了PHP基于php_imagick_st-Q8.dll實(shí)現(xiàn)JPG合成GIF圖片的方法。
首先要實(shí)現(xiàn)PHP使用php_imagick_st-Q8.dll類庫,把JPG圖片連接生成GIF動(dòng)畫圖片,需要事先下載好php_imagick_st-Q8.dll動(dòng)態(tài)鏈接庫文件,并配置php.ini文件,啟用php_imagick_st-Q8.dll。
二、配置方法如下:
1、將下載的php_imagick_st-Q8.dll文件放到PHP默認(rèn)的擴(kuò)展目錄,也就是:php/ext/目錄內(nèi);
2、打開php.ini,在extension區(qū)域新加入此行,注意前面不要有“;”,即:
extension=php_imagick_st-Q8.dll
3、重啟apache或IIS。
三、PHP實(shí)現(xiàn)代碼如下:
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圖片的函數(shù) get_img( $filelist , $type , $num , $qian , $path , $is ); /* * get_img 圖片合并,生成gif動(dòng)態(tài) * $filelist 要合并的圖片數(shù)組 * $type 生成的類型 * $num 生成的幀數(shù) * $qian 新文件名前綴 * $path 保持路徑 * $is 是否預(yù)覽 */ function get_img( $filelist , $type , $num , $qian , $path , $is ) { //初始化類 $animation = new Imagick(); //設(shè)置生成的格式 $animation ->setFormat( $type ); foreach ( $filelist as $file ){ $image = new Imagick(); $image ->readImage( $file ); //合并圖片 $animation ->addImage( $image ); //加入到對(duì)象 $animation ->setImageDelay( $num ); //設(shè)定圖片幀數(shù) unset( $image ); //清除內(nèi)存里的圖像,釋放內(nèi)存 } //以下兩行是調(diào)試時(shí)用的,測(cè)試是否生成了gif圖片 //header( "Content-Type: image/gif" ); //echo( $animation->getImagesBlob() ); //生成的GIF文件名組合 $images = $qian . time(). '.' . $type ; //生成GIF圖片 $animation ->writeImages( $images ,true ); //保存GIF到指定文件夾 copy ( $images , $path . $images ); //是否預(yù)覽 if ( $is ) { echo '已生成gif圖片: ' . $images . '<br />' ; echo "<img src='" . $path . $images . "' />" ; } else { echo '已生成gif圖片: ' . $images . '<br />' ; } //刪除原來保存的圖片 unlink( $images ); } ?> |