現在の位置: ホーム> 最新記事一覧> PHPおよびExif拡張機能を使用して写真の回転角度を自動的に抽出して修正する方法

PHPおよびExif拡張機能を使用して写真の回転角度を自動的に抽出して修正する方法

gitbox 2025-07-14

PHPとEXIFを使用して、拡張写真回転角度を拡張して修正します

携帯電話やデジタルカメラから撮影した写真を扱うとき、写真の誤った回転で問題に遭遇することがよくあります。 Webサイトにアップロードしたり、他の操作を実行したりするときに写真が正しく表示されるようにするために、PHPとExif拡張機能を使用して、写真の回転角を抽出して固定できます。

PHP Exif拡張子をインストールします

開始する前に、サーバーにPHP Exif拡張機能がインストールされていることを確認してください。インストールされていない場合は、次のコマンドを介してインストールできます。

 <span class="fun">sudo apt-getインストールphp-exif</span>

インストールが完了したら、拡張機能= exifを解除することにより、php.iniファイルのexif拡張子を有効にすることを忘れないでください。

写真の回転角を読んでください

EXIF拡張機能を有効にすると、回転角を含むPHPコードを介して写真のEXIFメタデータを読み取ることができます。

まず、 exif_read_data()関数を使用して、写真のexifデータを読み取ります。

 <span class="fun">$ exif = exif_read_data( &#39;path/to/photo.jpg&#39;);</span>

写真の回転角を抽出します

exifデータが読み取られたら、 $ exif ['orientation']にアクセスして、写真の回転情報を取得できます。 EXIFの回転角は通常、整数で表され、その特定の意味は次のとおりです。

  • 1:回転は必要ありません
  • 3:時計回りに180度回転します
  • 6:時計回りに90度回転します
  • 8:反時計回りに90度回転します

これらの値に基づいて正しい回転角を計算できます。

 function getPhotoRotation($exifOrientation) {
    switch ($exifOrientation) {
        case 3: $rotation = 180; break;
        case 6: $rotation = 90; break;
        case 8: $rotation = -90; break;
        default: $rotation = 0;
    }
    return $rotation;
}

写真を回転させます

回転角を抽出した後、PHPのGDライブラリを使用して実際の画像回転を実行できます。

まず、 ImageCreateFromJPeg()関数を使用して写真を読み込みます。

 <span class="fun">$ image = imagecreatefromjpeg( &#39;path/to/photo.jpg&#39;);</span>

次に、回転処理にはimagerotate()関数を使用します。

 <span class="fun">$ rotatedImage = imagerotate($ image、$ rotation、0);</span>

最後に、 imagejpeg()を使用して、回転した写真をファイルに保存します。

 <span class="fun">ImageJpeg($ rotatedImage、 &#39;path/to/rotated-photo.jpg&#39;);</span>

要約します

PHPおよびExif拡張機能を使用することにより、写真の回転角を簡単に抽出し、GDライブラリの助けを借りて画像回転処理を実行できます。この方法により、写真が正しく回転することを保証するだけでなく、写真をアップロードするときに表示エラーの問題を効果的に回避します。