shell mysql 微软 开源 google Android Ubuntu Firefox nginx linux php Windows centos linux命令 HTML5 apache 程序员 java wordpress Python

php生成gif动态图片,保存到指定目录,多张jpg图片生成gif

/* 
图片合并需要
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);
}

延伸阅读

评论