php 影象處理 摳圖,生成背景透明png 圖片
阿新 • • 發佈:2018-12-31
*自定義一個圖片等比縮放函式 *@param string $picname 被縮放圖片名 *@param string $path 被縮放圖片路徑 *@param int $maxWidth 圖片被縮放後的最大寬度 *@param int $maxHeight 圖片被縮放後的最大高度 *@param string $pre 縮放後的圖片名字首,預設為"s_" *@return boolen 返回布林值表示成功與否。 */ function imageResize($picname,$path,$maxWidth,$maxHeight,$pre="s_"){ $path = rtrim($path,"/")."/"; //1獲取被縮放的圖片資訊 $info = getimagesize($path.$picname); //獲取圖片的寬和高 $width = $info[0]; $height = $info[1]; //2根據圖片型別,使用對應的函式建立畫布源。 switch($info[2]){ case 1: //gif格式 $srcim = imagecreatefromgif($path.$picname); break; case 2: //jpeg格式 $srcim = imagecreatefromjpeg($path.$picname); break; case 3: //png格式 $srcim = imagecreatefrompng($path.$picname); break; default: return false; //die("無效的圖片格式"); break; } //3. 計算縮放後的圖片尺寸 if($maxWidth/$width<$maxHeight/$height){ $w = $maxWidth; $h = ($maxWidth/$width)*$height; }else{ $w = ($maxHeight/$height)*$width; $h = $maxHeight; } //4. 建立目標畫布 $dstim = imagecreatetruecolor($w,$h); //5. 開始繪畫(進行圖片縮放) imagecopyresampled($dstim,$srcim,0,0,0,0,$w,$h,$width,$height); //6. 輸出影象另存為 switch($info[2]){ case 1: //gif格式 imagegif($dstim,$path.$pre.$picname); break; case 2: //jpeg格式 imagejpeg($dstim,$path.$pre.$picname); break; case 3: //png格式 imagepng($dstim,$path.$pre.$picname); break; } }