在PHP 中,圖像處理功能非常強大, imagerotate函數就是其中一個用於圖像旋轉的工具。這個函數可以讓你將圖像順時針或逆時針旋轉指定的角度,支持處理多種圖像格式,包括PNG、JPEG、GIF 等。
imagerotate函數的基本語法如下:
resource imagerotate ( resource $image , float $angle , int $bgd_color )
$image :原始圖像資源,通常是通過imagecreatefromjpeg() 、 imagecreatefrompng()等函數創建的圖像。
$angle :旋轉的角度,單位是度(degree)。如果是順時針旋轉,角度為正數;如果是逆時針旋轉,角度為負數。
$bgd_color :旋轉後圖像背景的顏色,通常是使用imagecolorallocate()函數定義的顏色。
要實現圖像的順時針旋轉,我們需要給imagerotate函數傳遞一個正數的角度。下面是一個示例代碼,演示如何使用imagerotate函數將圖像旋轉90 度:
<?php
// 加載圖像
$image = imagecreatefromjpeg('example.jpg');
// 設置旋轉角程度為 90 程度(順時針)
$angle = 90;
// 設定背景顏色(可以選擇白色、黑色等顏色)
$bgd_color = imagecolorallocate($image, 255, 255, 255); // 白色背景
// 執行旋轉
$rotated_image = imagerotate($image, $angle, $bgd_color);
// 保存旋轉後的圖像
imagejpeg($rotated_image, 'rotated_example.jpg');
// 銷毀圖像資源
imagedestroy($image);
imagedestroy($rotated_image);
echo "圖像已成功旋轉並保存。";
?>
imagecreatefromjpeg() :加載原始的JPEG 圖像。你也可以根據需要使用imagecreatefrompng()或imagecreatefromgif()等函數加載其他格式的圖像。
imagecolorallocate() :為背景設置顏色。在這個例子中,我們使用了白色(RGB值為255, 255, 255)。這個背景顏色在旋轉時將出現在圖像的空白區域。
imagerotate() :實際執行旋轉操作。函數的第一個參數是加載的圖像,第二個參數是旋轉角度,第三個參數是背景顏色。
imagejpeg() :保存旋轉後的圖像。如果你處理的是PNG 或GIF 格式的圖像,可以使用imagepng()或imagegif()函數來保存。
imagedestroy() :釋放圖像資源,避免內存洩漏。
旋轉圖像時, imagerotate函數會創建一個新的圖像並返回該圖像資源,因此你需要處理並保存返回的新圖像。
背景顏色的選擇非常重要,特別是當旋轉角度為非90 度時,空白區域會出現指定的背景顏色。
如果需要處理透明背景的圖像(如PNG 格式),確保使用透明顏色作為背景。可以通過以下代碼設置透明背景:
$bgd_color = imagecolorallocatealpha($image, 0, 0, 0, 127); // 完全透明背景
通過imagerotate函數,你可以輕鬆地將圖像旋轉指定角度,包括順時針旋轉。需要注意的是,圖像的背景顏色需要在旋轉時設置合適,特別是處理透明背景的圖像時,要小心設置透明顏色。這使得imagerotate函數在處理圖像旋轉任務時非常靈活且實用。