php簡單圖片壓縮,基於laravel框架的原生處理
阿新 • • 發佈:2019-01-10
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); //清除新建檔案,快取檔案被壓縮後的替換
}
$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); //清除新建檔案,快取檔案被壓縮後的替換
}