PHP EXIF 데이터 읽기 및 이미지 방향 조정
특히 모바일 장치에서 이미지를 업로드할 때 방향이 올바른지 확인하는 것이 중요합니다. 이는 EXIF 데이터를 읽고 이에 따라 이미지를 조작함으로써 달성됩니다.
EXIF 데이터 읽기
exif_read_data() 함수는 업로드된 이미지에서 EXIF 정보를 읽는 데 사용됩니다. JPEG 이미지. 예:
<code class="php">$exif = exif_read_data($upload_path . $newfilename);</code>
$exif에 저장된 결과에는 방향 데이터를 포함한 다양한 정보가 포함되어 있습니다.
방향 조정
수정하려면 방향을 확인하려면 EXIF 데이터의 방향 필드를 검사하세요. 일반적인 값은 다음과 같습니다.
방향 값에 따라 다음과 같은 이미지 조작 기능을 사용하여 적절한 변환을 적용합니다. imagerotate() 또는rotateImage().
iPhone 및 Android 이미지의 일반적인 문제 해결
iPhone 및 Android 기기의 이미지는 종종 삽입되기 때문에 코드에 문제가 발생할 수 있습니다. 비표준 방식의 EXIF 데이터. 이 문제를 해결하려면 방향 수정을 위해 GD 또는 ImageMagick 기능을 사용하는 것이 좋습니다.
GD 기능
<code class="php">function image_fix_orientation(&$image, $filename) { $exif = exif_read_data($filename); if (!empty($exif['Orientation'])) { switch ($exif['Orientation']) { case 3: $image = imagerotate($image, 180, 0); break; case 6: $image = imagerotate($image, 90, 0); break; case 8: $image = imagerotate($image, -90, 0); break; } } }</code>
ImageMagick 기능
<code class="php">function image_fix_orientation($image) { if (method_exists($image, 'getImageProperty')) { $orientation = $image->getImageProperty('exif:Orientation'); } else { $filename = $image->getImageFilename(); if (empty($filename)) { $filename = 'data://image/jpeg;base64,' . base64_encode($image->getImageBlob()); } $exif = exif_read_data($filename); $orientation = isset($exif['Orientation']) ? $exif['Orientation'] : null; } if (!empty($orientation)) { switch ($orientation) { case 3: $image->rotateImage('#000000', 180); break; case 6: $image->rotateImage('#000000', 90); break; case 8: $image->rotateImage('#000000', -90); break; } } }</code>
이러한 기능은 리샘플링 없이 이미지 방향을 조정하여 이미지를 보존합니다. 품질.
위 내용은 모바일 장치에서 이미지를 업로드할 때 이미지 방향을 수정하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!