> 백엔드 개발 > PHP 튜토리얼 > PHP의 `exif_read_data` 기능을 사용하여 iPhone 및 Android 이미지 방향이 수정되지 않는 이유는 무엇입니까?

PHP의 `exif_read_data` 기능을 사용하여 iPhone 및 Android 이미지 방향이 수정되지 않는 이유는 무엇입니까?

Barbara Streisand
풀어 주다: 2024-10-28 06:57:02
원래의
450명이 탐색했습니다.

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 ​​데이터에 유효한 Orientation 값이 포함되어 있지 않은 것 같습니다.

업데이트된 코드

이 문제를 해결하려면 보다 강력한 방법을 사용할 수 있습니다. 방향 데이터를 추출합니다. 코드의 업데이트된 버전은 다음과 같습니다.

<code class="php">$exif = exif_read_data($upload_path . $newfilename, 'ANY_TAG');
$ort = $exif['IFD0']['Orientation'] ?? 1;</code>
로그인 후 복사

EXIF 방향 값

방향 값의 범위는 1~8일 수 있으며, 다른 값은 다른 회전 또는 뒤집기를 나타냅니다. .

  • 1: 수평(일반)
  • 3: 180° CW 회전
  • 6: 90° CW 회전
  • 8: 90° CCW 회전
  • 2: 가로 뒤집기
  • 4: 세로 뒤집기
  • 5: 가로 뒤집기 및 90° 시계 방향 회전
  • 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 데이터에 여전히 방향 값이 포함되어 있지 않거나 조정이 작동하지 않는 것 같으면 이미지 라이브러리에 대한 특정 문서를 참조하거나 사용을 고려해야 할 수 있습니다. 올바른 방향을 결정하는 대체 방법.

위 내용은 PHP의 `exif_read_data` 기능을 사용하여 iPhone 및 Android 이미지 방향이 수정되지 않는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿