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 で、異なる値は異なる回転または反転を示します。 .
画像の向きの調整
正しい向きの値を使用して、必要に応じて画像を調整できます。
<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 サイトの他の関連記事を参照してください。