當前位置: 首頁> 最新文章列表> 如何通過imagerotate 將圖片旋轉並輸出為JPEG 格式?

如何通過imagerotate 將圖片旋轉並輸出為JPEG 格式?

gitbox 2025-09-03

在PHP 中,處理圖像是一項常見的任務。使用GD 庫中的imagerotate函數,可以輕鬆地將圖像進行旋轉操作。此函數非常實用,尤其是在處理用戶上傳的圖像時。如果你想將圖像旋轉並將其輸出為JPEG 格式,本文將會詳細介紹如何實現。

1. 什麼是imagerotate函數?

imagerotate是PHP 中GD 庫提供的一個函數,允許你對圖像進行旋轉。旋轉後的圖像是基於指定的角度進行的,並且可以通過一個指定的背景顏色填充空白區域。

imagerotate的基本語法:

 <span><span><span class="hljs-title function_ invoke__">imagerotate</span></span><span>(</span><span><span class="hljs-variable">$image</span></span><span>, </span><span><span class="hljs-variable">$angle</span></span><span>, </span><span><span class="hljs-variable">$bgColor</span></span><span>);
</span></span>
  • $image : 一個圖像資源,通常由imagecreatefrom...系列函數(如imagecreatefromjpegimagecreatefrompng等)創建。

  • $angle : 旋轉角度,單位是度。正值表示順時針旋轉,負值表示逆時針旋轉。

  • $bgColor : 旋轉後的空白區域的背景顏色,通常是imagecolorallocate函數創建的顏色資源。

2. 旋轉圖片並輸出為JPEG 格式

接下來,我們將會演示如何通過PHP 實現將圖片旋轉並保存為JPEG 格式的具體步驟。假設我們要處理一個名為example.jpg的圖像文件。

步驟1: 加載圖像

首先,我們需要加載需要旋轉的圖像。這裡使用imagecreatefromjpeg函數來加載JPEG 格式的圖像。

 <span><span><span class="hljs-variable">$image</span></span><span> = </span><span><span class="hljs-title function_ invoke__">imagecreatefromjpeg</span></span><span>(</span><span><span class="hljs-string">'example.jpg'</span></span><span>);
</span></span>

步驟2: 旋轉圖像

我們接下來通過imagerotate來旋轉圖像。假設我們希望將圖像順時針旋轉90 度,背景顏色為白色。

 <span><span><span class="hljs-variable">$rotatedImage</span></span><span> = </span><span><span class="hljs-title function_ invoke__">imagerotate</span></span><span>(</span><span><span class="hljs-variable">$image</span></span><span>, </span><span><span class="hljs-number">90</span></span><span>, </span><span><span class="hljs-number">0xFFFFFF</span></span><span>);  </span><span><span class="hljs-comment">// 白色背景</span></span><span>
</span></span>

在這裡,我們指定了旋轉角度為90 度,並且背景顏色為白色( 0xFFFFFF表示白色的十六進制值)。

步驟3: 輸出圖像為JPEG 格式

旋轉完成後,我們將圖像輸出為JPEG 格式。為了保持圖像質量,我們可以指定壓縮質量(0 到100 之間的整數,100 表示無壓縮)。

 <span><span><span class="hljs-title function_ invoke__">imagejpeg</span></span><span>(</span><span><span class="hljs-variable">$rotatedImage</span></span><span>, </span><span><span class="hljs-string">'rotated_example.jpg'</span></span><span>, </span><span><span class="hljs-number">90</span></span><span>);  </span><span><span class="hljs-comment">// 90 為輸出質量</span></span><span>
</span></span>

步驟4: 清理資源

最後,不要忘記清理我們在內存中佔用的圖像資源。

 <span><span><span class="hljs-title function_ invoke__">imagedestroy</span></span><span>(</span><span><span class="hljs-variable">$image</span></span><span>);
</span><span><span class="hljs-title function_ invoke__">imagedestroy</span></span><span>(</span><span><span class="hljs-variable">$rotatedImage</span></span><span>);
</span></span>

3. 完整代碼示例

將以上的代碼整合成一個完整的PHP 腳本,示例如下:

 <span><span><span class="hljs-meta">&lt;?php</span></span><span>

</span><span><span class="hljs-comment">// 加載圖像</span></span><span>
</span><span><span class="hljs-variable">$image</span></span><span> = </span><span><span class="hljs-title function_ invoke__">imagecreatefromjpeg</span></span><span>(</span><span><span class="hljs-string">'example.jpg'</span></span><span>);

</span><span><span class="hljs-comment">// 旋轉圖像 90 程度,背景顏色為白色</span></span><span>
</span><span><span class="hljs-variable">$rotatedImage</span></span><span> = </span><span><span class="hljs-title function_ invoke__">imagerotate</span></span><span>(</span><span><span class="hljs-variable">$image</span></span><span>, </span><span><span class="hljs-number">90</span></span><span>, </span><span><span class="hljs-number">0xFFFFFF</span></span><span>);

</span><span><span class="hljs-comment">// 輸出圖像為 JPEG 格式,質量為 90</span></span><span>
</span><span><span class="hljs-title function_ invoke__">imagejpeg</span></span><span>(</span><span><span class="hljs-variable">$rotatedImage</span></span><span>, </span><span><span class="hljs-string">'rotated_example.jpg'</span></span><span>, </span><span><span class="hljs-number">90</span></span><span>);

</span><span><span class="hljs-comment">// 清理圖像資源</span></span><span>
</span><span><span class="hljs-title function_ invoke__">imagedestroy</span></span><span>(</span><span><span class="hljs-variable">$image</span></span><span>);
</span><span><span class="hljs-title function_ invoke__">imagedestroy</span></span><span>(</span><span><span class="hljs-variable">$rotatedImage</span></span><span>);

</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"圖像旋轉完成並已保存為 rotated_example.jpg"</span></span><span>;

</span><span><span class="hljs-meta">?&gt;</span></span><span>
</span></span>

4. 其他注意事項

  • 旋轉角度: 旋轉角度必須是度數。例如,90 度是將圖像順時針旋轉四分之一圈,180 度是旋轉半圈,-90 度是逆時針旋轉。

  • 背景顏色: 如果旋轉後的圖像產生了透明的區域, imagerotate會用指定的背景顏色填充這些區域。你可以通過imagecolorallocate函數定義任何顏色。

  • 圖像類型: 雖然本例中使用了JPEG 格式,但你也可以使用imagecreatefrompngimagecreatefromgif等函數處理其他格式的圖像,旋轉操作本身是獨立於圖像格式的。

5. 總結

使用PHP 的imagerotate函數可以非常方便地旋轉圖像,並且可以通過簡單的代碼將旋轉後的圖像保存為JPEG 格式。結合其他GD 庫的函數,你可以實現更加複雜的圖像處理操作。希望本文的示例能幫助你在項目中有效地處理圖像旋轉。