具體用法如下:
$a=thumbImage('1.jpg',200,100,'2.jpg');//將1.jpg產生寬為200,高為100的縮圖,並儲存為2.jpgprint_r($a);
列印結果:
Array(
[status] => 0
[file] => 1.jpg
[width] => 200
[height] => 200
[savePath] => 2.jpg
[info] => 縮圖片產生成功
)
$a=thumbImage('1.jpg',200,100);//將1.jpg產生寬為200,高為100的縮圖,並直接覆蓋1.jpg,不產生新圖片
函數代碼如下:
0,'file'=>'','width'=>0,'height'=>0,'savePath'=>'','info'=>'');if(!file_exists($file)){return array('status'=>1,'file'=>'','width'=>0,'height'=>0,'savePath'=>'','info'=>'圖片檔案不存在');}//檢測檔案類型$fp=fopen($file,'rb');$str=fread($fp,2); //唯讀2位元組fclose($fp);$str=@unpack("c2chars",$str);$typeCode=intval($str['chars1'].$str['chars2']);$fileType='';switch($typeCode){case 255216:$fileType='jpg';break;case 7173:$fileType='gif';break;case 6677:$fileType='bmp';break;case 13780:$fileType='png';break;default:$fileType=$typeCode;break;}if($str['chars1']=='-1'&&$str['chars2']=='-40'){$fileType='jpg';}if($str['chars1']=='-119'&&$str['chars2']=='80'){$fileType='png';}if(!in_array($fileType,array('jpg','gif','bmp','png'))){return array('status'=>2,'file'=>'','width'=>0,'height'=>0,'savePath'=>'','info'=>'圖片檔案類型不正確:'.$fileType);}//圖片縮放處理if($fileType=='jpg'){$im=imagecreatefromjpeg($file);}if($fileType=='gif'){$im=imagecreatefromgif($file);}if($fileType=='png'){$im=imagecreatefrompng($file);}if(empty($savePath))$savePath=$file;$width=imagesx($im);$height=imagesy($im);if($width<$thumbWidth&&$height<$thumbHeight){return array('status'=>3,'file'=>'','width'=>0,'height'=>0,'savePath'=>'','info'=>'圖片尺寸小於產生縮圖的尺寸');}$ratio=$width/$height;//實際圖象的比例$thumbRatio=$thumbWidth/$thumbHeight;//改變後的圖象的比例if($isCut){//裁切處理if(function_exists('imagepng')&&(str_replace('.','',PHP_VERSION)>=512)){//針對php版本大於5.12參數變化後的處理情況$quality=9;}if($ratio>=$thumbRatio){//高度優先$newimg=imagecreatetruecolor($thumbWidth,$thumbHeight);imagecopyresampled($newimg,$im,0,0,0,0,$thumbWidth,$thumbHeight,(($height)*$thumbRatio),$height);imagejpeg($newimg,$savePath,$quality);}if($ratio<$thumbRatio){//寬度優先$newimg=imagecreatetruecolor($thumbWidth,$thumbHeight);imagecopyresampled($newimg,$im,0,0,0,0,$thumbWidth,$thumbHeight,$width,(($width)/$thumbRatio));imagejpeg($newimg,$savePath,$quality);}}else{//不裁切處理if($ratio>=$thumbRatio){$newimg=imagecreatetruecolor($thumbWidth,($thumbWidth)/$ratio);imagecopyresampled($newimg,$im,0,0,0,0,$thumbWidth,($thumbWidth)/$ratio,$width,$height);imagejpeg($newimg,$savePath,$quality);}if($ratio<$thumbRatio){$newimg=imagecreatetruecolor(($thumbHeight)*$ratio,$thumbHeight);imagecopyresampled($newimg,$im,0,0,0,0,($thumbHeight)*$ratio,$thumbHeight,$width,$height);imagejpeg($newimg,$savePath,$quality);}}ImageDestroy($im);//www.phpernote.com/php-function/1007.htmlreturn array('status'=>0,'file'=>$file,'width'=>$thumbWidth,'height'=>$thumbHeight,'savePath'=>$savePath,'info'=>'縮圖片產生成功');}
您可能感興趣的文章
- php產生圖片縮圖的類方法
- PHP 產生連續的數字(字母)數組函數range()分析,PHP抽獎程式函數
- PHP產生隨機密碼函數
- php擷取內容中的所有圖片列表並輸出的方法
- php提取社會安全號碼碼中的生日日期以及驗證是否為未成年人的函數
- php產生柱狀圖(統計圖)程式
- php產生驗證碼函數
- php產生短網址的思路以及實現方法
http://www.bkjia.com/PHPjc/779412.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/779412.htmlTechArticle具體用法如下: $a=thumbImage('1.jpg',200,100,'2.jpg');//將1.jpg產生寬為200,高為100的縮圖,並儲存為2.jpgprint_r($a); 列印結果: Array( [status] = 0 [...