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

yipeiwu_com6年前PHP代码库

一、概述:

本文详解了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 是否预览
 */
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);
}
?>

相关文章

PHP使用curl_multi_select解决curl_multi网页假死问题的方法

本文实例讲述了PHP使用curl_multi_select解决curl_multi网页假死问题的方法。分享给大家供大家参考,具体如下: curl_multi可以批处理事务,给网页编程带来...

php+ajax无刷新上传图片的实现方法

php+ajax无刷新上传图片的实现方法

本文实例讲述了php+ajax无刷新上传图片的实现方法。分享给大家供大家参考,具体如下: 1.引入文件 <!--图片上传begin--> <script type=...

php基础知识:类与对象(3) 构造函数和析构函数

构造函数 PHP 5 允行开发者在一个类中定义一个方法作为构造函数。具有构造函数的类会在每次创建对象时先调用此方法,所以非常适合在使用对象之前做一些初始化工作。&nb...

php中通过虚代理实现延迟加载的实现代码

这货是从 Martin 大神的《企业应用架构模式》中学到的,辅助 PHP 动态语言的特性,可以比 Java 轻松很多的实现延迟加载(LazyLoad)。基本原理是通过一个虚代理(Virt...

php在线解压ZIP文件的方法

本文实例讲述了php在线解压ZIP文件的方法。分享给大家供大家参考。具体分析如下: 在PHP的函数库中只找到了个ZLIB的函数还跟压缩有点关系,但是使我失望的是他没能解ZIP的文件,但最...