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
收藏随意^^请保留教程地址.