1. 程式人生 > >php 壓縮各格式圖片,處理png格式圖片背景黑色問題

php 壓縮各格式圖片,處理png格式圖片背景黑色問題

    //壓縮圖片 //$srcFile 檔名 //$percent壓縮比 //$quality圖片質量     function pictumb($srcFile,$percent,$quality){         $dstFile = $srcFile;//保留名字         //header('Content-Type: image/jpeg');         // 獲取新的尺寸         list($width, $height) = getimagesize($srcFile);         if ($width>600){             $new_width = $width / $percent;             $new_height = $height / $percent;         }else{             $new_width =$width;             $new_height = $height;         }             // 重新取樣             $image_p = imagecreatetruecolor($new_width, $new_height);             //設定顏色             $color=imagecolorallocate($image_p,255,255,255);              imagecolortransparent($image_p,$color);              imagefill($image_p,0,0,$color);              //獲取格式             $format=substr($srcFile,strrpos($srcFile, '.'));             switch ($format) {                 case '.png':                     $image=imagecreatefrompng($srcFile);                     break;                 case '.jpeg':                     $image=imagecreatefromjpeg($srcFile);                     break;                 case '.bmp':                     $image=imagecreatefromwbmp($srcFile);                     break;                 case '.gif':                     $image=imagecreatefromgif($srcFile);                     break;                 default:                      $image=imagecreatefromjpeg($srcFile);                     break;             }             imagecopyresampled($image_p, $image, 0, 0, 0, 0, $new_width, $new_height, $width, $height);             chmod($srcFile,0777);//unlink函式要求對刪除的圖片有777的許可權             unlink($srcFile);//先刪除圖片,在進行儲存             // 輸出             switch ($format) {                 case '.png':                     imagepng($image_p,$dstFile);                     break;                 case '.jpeg':                     imagejpeg($image_p,$dstFile, $quality);                     break;                 case '.bmp':                     imagewbmp($image_p,$dstFile);                     break;                 case '.gif':                     imagegif( $image_p,$dstFile);                     break;                 default:                      imagejpeg($image_p,$dstFile,$quality);                     break;             }     }