1. 程式人生 > >php簡單圖片壓縮,基於laravel框架的原生處理

php簡單圖片壓縮,基於laravel框架的原生處理

if($image->getClientMimeType() == "image/png"){//圖片格式
$src = @imagecreatefrompng ($image->getRealPath());  //建立畫布,從快取檔案路徑載入圖片
list($width,$height) = getimagesize($image->getRealPath());   //獲取寬高並賦值
$newwidth = $width/4;  //壓縮後寬
$newheight = $height/4; //壓縮後高
$tmp = imagecreatetruecolor($newwidth,$newheight); //壓縮後寬高建立一個空圖片 
imagecopyresized($tmp, $src, 0, 0, 0, 0, $newwidth, $newheight, $width, $height);  //將快取檔案複製到新建空圖片,
imagepng($tmp, $image->getRealPath(), 9);  //新建圖片替換快取檔案
imagedestroy($tmp); //清除新建檔案,快取檔案被壓縮後的替換
}else if ($image->getClientMimeType() == "image/jpeg") {//圖片格式
$src = @imagecreatefromjpeg ($image->getRealPath());  //建立畫布,從快取檔案路徑載入圖片
list($width,$height) = getimagesize($image->getRealPath());   //獲取寬高並賦值
$newwidth = $width/4;  //壓縮後寬
$newheight = $height/4; //壓縮後高
$tmp = imagecreatetruecolor($newwidth,$newheight);  //壓縮後寬高建立一個空圖片
imagecopyresized($tmp, $src, 0, 0, 0, 0, $newwidth, $newheight, $width, $height);  //將快取檔案複製到新建空圖片,
imagejpeg($tmp, $image->getRealPath(), 9);  //新建圖片替換快取檔案
imagedestroy($tmp); //清除新建檔案,快取檔案被壓縮後的替換
}else if ($image->getClientMimeType() == "image/gif") {//圖片格式
$src = @imagecreatefromgif ($image->getRealPath());  //建立畫布,從快取檔案路徑載入圖片
list($width,$height) = getimagesize($image->getRealPath()); //獲取寬高並賦值  
$newwidth = $width/4;  //壓縮後寬
$newheight = $height/4; //壓縮後高
$tmp = imagecreatetruecolor($newwidth,$newheight);  //壓縮後寬高建立一個空圖片
imagecopyresized($tmp, $src, 0, 0, 0, 0, $newwidth, $newheight, $width, $height);  //將快取檔案複製到新建空圖片,
imagegif($tmp, $image->getRealPath(), 9); //新建圖片替換快取檔案 
imagedestroy($tmp); //清除新建檔案,快取檔案被壓縮後的替換
}else if ($image->getClientMimeType() == "image/wbmp") {//圖片格式
$src = @imagecreatefromwbmp ($image->getRealPath());  //建立畫布,從快取檔案路徑載入圖片
list($width,$height) = getimagesize($image->getRealPath());   //獲取寬高並賦值
$newwidth = $width/4;  //壓縮後寬
$newheight = $height/4; //壓縮後高
$tmp = imagecreatetruecolor($newwidth,$newheight);  //壓縮後寬高建立一個空圖片
imagecopyresized($tmp, $src, 0, 0, 0, 0, $newwidth, $newheight, $width, $height);  //將快取檔案複製到新建空圖片,
imagewbmp($tmp, $image->getRealPath(), 9);  //新建圖片替換快取檔案
imagedestroy($tmp); //清除新建檔案,快取檔案被壓縮後的替換
}