首先使用一個ini檔案來設定要縮放的大小,其中為寬或高0的則為圖片放大或縮小,都為0則還是原大小,都不為0都拉抻成指定的大小。
注意:ini文件使用php解釋時為註解文件,什麼也沒有輸出,這是為了安全起見而故意為之。而;則是ini檔的註解。
我設定的ini檔案範例如下:
複製程式碼 程式碼如下:
/ *
;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
image to the specified Height with width auto size
[AutoWidth]
width=0
height=380
*/
?>
下面是寫的縮放圖片的php程式碼,其中變數classes是一個數組,可以選擇任意多個ini檔案中指定的設定:
複製程式碼 程式碼如下:
$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 =$thumbHeight =$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);//Release the image source
imagedestroy($source);
}
?>
以上就介紹了initialization failure php批次縮放圖片的程式碼[ini參數控制],包括了initialization failure方面的內容,希望對PHP教程有興趣的朋友有所幫助。