PHP GD庫是一個強大的圖像處理庫,它使得PHP可以生成,操作和輸出各種格式的圖像文件。其中,支持最為廣泛的是JPEG格式,因為這種格式兼容性好,壓縮比高,可以在網絡上快速加載。
一般來說,使用PHP GD庫來處理JPEG圖像需要三個步驟:
1. 載入源文件
2. 對圖像進行處理
3. 輸出處理后的圖像
下面給出幾個例子,展示如何使用PHP GD庫處理JPEG圖像。
1. 調整JPEG圖像大小
下面的代碼展示如何將一個JPEG圖像縮小50%:
// 載入源文件 $sourceImg = imagecreatefromjpeg('source.jpg'); // 獲取原圖片的寬高 $sourceWidth = imagesx($sourceImg); $sourceHeight = imagesy($sourceImg); // 計算縮小后的寬高 $resizedWidth = intval($sourceWidth * 0.5); $resizedHeight = intval($sourceHeight * 0.5); // 創建新圖像,并將源圖像縮小后繪制到新圖像中 $resizedImg = imagecreatetruecolor($resizedWidth, $resizedHeight); imagecopyresampled($resizedImg, $sourceImg, 0, 0, 0, 0, $resizedWidth, $resizedHeight, $sourceWidth, $sourceHeight); // 輸出處理后的圖像 header('Content-Type: image/jpeg'); // 輸出圖片前必須發送header imagejpeg($resizedImg);2. 裁剪JPEG圖像 下面的代碼展示如何將一個JPEG圖像裁剪為正方形,并輸出處理后的圖像:
// 載入源文件 $sourceImg = imagecreatefromjpeg('source.jpg'); // 獲取原圖片的寬高 $sourceWidth = imagesx($sourceImg); $sourceHeight = imagesy($sourceImg); // 計算應該裁剪的大小 $croppedSize = min($sourceWidth, $sourceHeight); // 創建新圖像,并將源圖像裁剪后繪制到新圖像中 $croppedImg = imagecreatetruecolor($croppedSize, $croppedSize); imagecopyresampled($croppedImg, $sourceImg, 0, 0, ($sourceWidth - $croppedSize) / 2, ($sourceHeight - $croppedSize) / 2, $croppedSize, $croppedSize, $croppedSize, $croppedSize); // 輸出處理后的圖像 header('Content-Type: image/jpeg'); // 輸出圖片前必須發送header imagejpeg($croppedImg);3. 添加水印 下面的代碼展示如何在一個JPEG圖像上添加一個水印:
// 載入源文件 $sourceImg = imagecreatefromjpeg('source.jpg'); // 載入水印圖片 $watermarkImg = imagecreatefrompng('watermark.png'); // 獲取原圖片的寬高 $sourceWidth = imagesx($sourceImg); $sourceHeight = imagesy($sourceImg); // 獲取水印圖片的寬高 $watermarkWidth = imagesx($watermarkImg); $watermarkHeight = imagesy($watermarkImg); // 計算水印的位置(居中) $watermarkX = ($sourceWidth - $watermarkWidth) / 2; $watermarkY = ($sourceHeight - $watermarkHeight) / 2; // 將水印圖片繪制到原圖片上 imagecopy($sourceImg, $watermarkImg, $watermarkX, $watermarkY, 0, 0, $watermarkWidth, $watermarkHeight); // 輸出處理后的圖像 header('Content-Type: image/jpeg'); // 輸出圖片前必須發送header imagejpeg($sourceImg);綜上,PHP GD庫在處理JPEG圖像方面非常強大靈活,通過簡單的代碼就可以完成各種復雜的圖像處理。無論是生成縮略圖、裁剪圖片、添加水印,還是其他高級的圖像操作,都可以使用PHP GD庫輕松搞定。
下一篇php gd填充