携帯電話やデジタルカメラから撮影した写真を扱うとき、写真の誤った回転で問題に遭遇することがよくあります。 Webサイトにアップロードしたり、他の操作を実行したりするときに写真が正しく表示されるようにするために、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( 'path/to/photo.jpg');</span>
exifデータが読み取られたら、 $ exif ['orientation']にアクセスして、写真の回転情報を取得できます。 EXIFの回転角は通常、整数で表され、その特定の意味は次のとおりです。
これらの値に基づいて正しい回転角を計算できます。
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( 'path/to/photo.jpg');</span>
次に、回転処理にはimagerotate()関数を使用します。
<span class="fun">$ rotatedImage = imagerotate($ image、$ rotation、0);</span>
最後に、 imagejpeg()を使用して、回転した写真をファイルに保存します。
<span class="fun">ImageJpeg($ rotatedImage、 'path/to/rotated-photo.jpg');</span>
PHPおよびExif拡張機能を使用することにより、写真の回転角を簡単に抽出し、GDライブラリの助けを借りて画像回転処理を実行できます。この方法により、写真が正しく回転することを保証するだけでなく、写真をアップロードするときに表示エラーの問題を効果的に回避します。