PHP read_exif_data 和調整方向
提供的程式碼嘗試根據 EXIF 資料調整上傳的 JPEG 影像的方向。但是,用戶報告了來自 iPhone 和 Android 裝置的圖像問題。
程式碼分析
使用 exif_read_data 函數擷取 EXIF 資料。 switch 語句檢查特定方向並嘗試相應地旋轉影像。但是,提供的 EXIF 資料似乎不包含有效的方向值。
更新的程式碼
要解決此問題,我們可以使用更強大的方法來擷取方向資料。這是程式碼的更新版本:
<code class="php">$exif = exif_read_data($upload_path . $newfilename, 'ANY_TAG'); $ort = $exif['IFD0']['Orientation'] ?? 1;</code>
EXIF 方向值
方向值的範圍可以從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 資料仍不包含方向值或調整似乎不起作用,您可能需要查閱圖片庫的特定文件或考慮使用確定正確方向的替代方法。
以上是為什麼不使用 PHP 的「exif_read_data」函數來修正 iPhone 和 Android 影像方向?的詳細內容。更多資訊請關注PHP中文網其他相關文章!