首页 > php图像处理 > php批量生成缩略图代码

php批量生成缩略图代码

缩放图片的php代码,其中变量classes是一个数组,可以选择任意多个ini文件中指定的设置,php批量生成缩略图代码如下:

<?php 
	$oimg = "test.jpg";//original image name 
	$classes = array('translation','autoheight','autowidth','stretch');//give classes for the new creating images' size which are defined in the specified ini file 
	$suffix = 'jpg';//the new image's suffix 
	$inifile = 'image.ini.php'; 
	 
	$size = getimagesize($oimg); 
	$x = $size[0]/$size[1]; 
	$name = explode('.',$oimg); 
	 
	if(!file_exists($inifile)) die('ini file does not exist!'); 
	$cn = parse_ini_file($inifile,true);//parse the class style image size from ini file 
	foreach($classes as $class){ 
	    foreach($cn as $k=>$v){ 
	        if($k==$class){ 
	            if($v['width'] && $v['height']){ 
	                $thumbwidth = $v['width']; 
	                $thumbheight = $v['height']; 
	            }elseif($v['width']){ 
	                $thumbwidth = $v['width']; 
	                $thumbheight = round($thumbwidth/$x); 
	            }elseif($v['height']){ 
	                $thumbheight = $v['height']; 
	                $thumbwidth = round($thumbheight*$x); 
	            }else{ 
	                $thumbwidth = $size[0]; 
	                $thumbheight = $size[1]; 
	            } 
	            break; 
	        } 
	    } 
	    if(!isset($thumbheight) && !isset($thumbwidth)) die('ini file settings error!'); 
	 
	    $nimg = $name[0].'_'.$class.'.'.$suffix;//new image file name 
	    $source = imagecreatefromjpeg($oimg); 
	    $thumb = imagecreatetruecolor($thumbwidth, $thumbheight); 
	    imagecopyresampled($thumb,$source,0,0,0,0,$thumbwidth,$thumbheight,$size[0],$size[1]); 
	 
	    if($suffix=='jpg') $method = 'imagejpeg'; 
	    else $method='image'.$suffix; 
	    $method($thumb, $nimg); 
	    imagedestroy($thumb);//phprm.com 
	    imagedestroy($source); 
	} 
	 

这是一个ini配置文件,上面的代码就要读取这个文件中的图片位置,可以多个.

<?php /*
;translate the image format using the original image size
[translation]
width=0
height=0
 
;stretch the image to the specified size
[stretch]
width=800
height=600
 
;zoom the image to the specified width with height auto size
[autoheight]
width=740
height=0
 
;zoom the image to the specified height with width auto size
[autowidth]
width=0
height=380
*/ ?>

 

注意:ini文件使用php解释时为注释文件,什么也没有输出,这是为了安全起见而故意为之,而;则是ini文件的注释.

本文链接:http://www.phprm.com/tuxiang/fs4440.html

收藏随意^^请保留教程地址.

标签:php批量生成 缩略图代码

发表留言