개발 과정에서 사용자가 업로드 한 이미지를 서버에 저장해야합니다. 사진이 휴대폰이나 다른 사진 테이킹 장치를 통해 업로드되면 방향 편차 문제가있을 수 있습니다. 대부분의 장치는 그림의 exif 메타 데이터에서 회전 방향을 기록하므로 사진을 저장할 때이 정보를 함께 처리해야합니다.
먼저 원격 이미지 URL을 통해 이미지를 로컬로 다운로드하여 저장해야합니다. php의 file_get_contents () 및 file_put_contents ()를 사용하여 구현할 수 있습니다.
$url = '원격 사진URL';
$image = file_get_contents($url);
// 파일 이름 및 경로 저장
$filename = '저장된 파일 이름.jpg';
$save_path = '저장된 경로';
file_put_contents($save_path . $filename, $image);
그림의 방향 정보는 일반적으로 Exif 메타 데이터, 특히 JPEG 형식 그림에 저장됩니다. PHP의 exif_read_data () 함수를 사용 하여이 정보를 읽을 수 있습니다.
// 통과하다 Exif 회전 방향을 확장하십시오
$exif = exif_read_data($save_path . $filename);
if (!empty($exif['Orientation'])) {
// 회전 방향에 따라 처리하십시오
switch ($exif['Orientation']) {
case 3:
// 회전180도
$image = imagerotate($image, 180, 0);
break;
case 6:
// 顺时针회전90도
$image = imagerotate($image, -90, 0);
break;
case 8:
// 逆时针회전90도
$image = imagerotate($image, 90, 0);
break;
}
}
// 保存회전后的图片
file_put_contents($save_path . $filename, $image);
위의 코드는 EXIF의 방향 필드를 사용하여 이미지를 해당 값에 따라 회전 해야하는지 여부를 결정합니다. 필요한 경우 imageRotate () 함수를 사용하여 처리를 위해 사용하십시오. 그러나 다음에 주목하십시오.
위의 방법을 통해 개발자는 원격 사진을 저장하면서 그림의 방향 문제를 자동으로 식별하고 수정하여 그림 디스플레이의 정확성과 사용자 경험을 향상시킬 수 있습니다. 이는 이미지 처리 시스템 구축 및 모바일 이미지 업로드 인터페이스와 같은 시나리오에서 특히 중요합니다.