ホームページ > バックエンド開発 > PHPチュートリアル > iPhone と Android の画像の向きが PHP の `exif_read_data` 関数を使用して修正されないのはなぜですか?

iPhone と Android の画像の向きが PHP の `exif_read_data` 関数を使用して修正されないのはなぜですか?

Barbara Streisand
リリース: 2024-10-28 06:57:02
オリジナル
474 人が閲覧しました

Why are iPhone and Android image orientations not being corrected using PHP's `exif_read_data` function?

PHP read_exif_data と方向の調整

提供されたコードは、EXIF データに基づいてアップロードされた JPEG 画像の方向を調整しようとします。ただし、iPhone や Android デバイスの画像に関する問題がユーザーから報告されています。

コード分析

EXIF データは exif_read_data 関数を使用して抽出されます。 switch ステートメントは特定の方向をチェックし、それに応じて画像を回転しようとします。ただし、提供された EXIF データには有効な方向の値が含まれていないようです。

更新されたコード

この問題を解決するには、より堅牢な方法を使用できます。方向データを抽出します。コードの更新バージョンは次のとおりです。

<code class="php">$exif = exif_read_data($upload_path . $newfilename, 'ANY_TAG');
$ort = $exif['IFD0']['Orientation'] ?? 1;</code>
ログイン後にコピー

EXIF Orientation Values

Orientation 値の範囲は 1 ~ 8 で、異なる値は異なる回転または反転を示します。 .

  • 1: 水平(標準)
  • 3: 180°CW回転
  • 6: 90°CW回転
  • 8: 90° CCW 回転
  • 2: 水平反転
  • 4: 垂直反転
  • 5: 水平反転および 90°CW 回転
  • 7: 垂直反転および 90° CW 回転

画像の向きの調整

正しい向きの値を使用して、必要に応じて画像を調整できます。

<code class="php">switch ($ort)
{
    case 3: // 180 rotate left
        $image->imagerotate(-180, -1);
        break;

    case 6: // 90 rotate right
        $image->imagerotate(-90, -1);
        break;

    case 8:    // 90 rotate left
        $image->imagerotate(90, -1);
        break;
}</code>
ログイン後にコピー

その他の考慮事項

EXIF データに向きの値がまだ含まれていない場合、または調整が機能しないように見える場合は、画像ライブラリの特定のドキュメントを参照するか、次の使用を検討する必要がある場合があります。正しい方向を決定するための代替方法。

以上がiPhone と Android の画像の向きが PHP の `exif_read_data` 関数を使用して修正されないのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート