現在の位置: ホーム> 最新記事一覧> ImageRotateを介して画像をJPEG形式に回転および出力する方法は?

ImageRotateを介して画像をJPEG形式に回転および出力する方法は?

gitbox 2025-09-03

PHPでは、画像の処理は一般的なタスクです。 GDライブラリでImageRotate関数を使用すると、画像を簡単に回転できます。この関数は、特にユーザーがアップロードした画像を処理する場合に非常に便利です。画像を回転させてJPEG形式に出力する場合、この記事ではそれを実装する方法を詳細に説明します。

1.イメージロテート機能とは何ですか?

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>
  • $画像:通常、 ImageCreateFrom ...シリーズ関数( ImageCreatefromjpegImageCreatefrommpngなど)によって作成された画像リソース。

  • $角:回転角は、程度のユニットです。正の値は時計回りの回転を示し、負の値は反時計回りの回転を示します。

  • $ 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は白の16進価値を表します)。

ステップ3:出力イメージはJPEG形式です

回転が完了したら、画像をJPEG形式に出力します。画質を維持するために、圧縮品質を指定できます(0〜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度は画像を4分の1ターンで時計回りに回転させ、180度は半回転を回転させ、-90度は反時計回りに回転します。

  • 背景色:回転した画像が透明な領域を生成する場合、イメージロテートはこれらの領域を指定された背景色で満たします。 ImageColorAllocate関数を介して任意の色を定義できます。

  • 画像タイプ:JPEG形式はこの例で使用されていますが、 ImageCreateFrommpngImageCreateFromgifなどの関数を使用して、他の形式で画像を処理することもできます。回転操作自体は、画像形式とは無関係です。

5。概要

PHPのImageRotate関数を使用すると、画像が簡単に回転でき、回転した画像を簡単なコードでJPEG形式に保存できます。他のGDライブラリの機能を組み合わせることで、より複雑な画像処理操作を実装できます。この記事の例が、プロジェクトで画像の回転を効果的に処理するのに役立つことを願っています。