2014-09-11 2 views
3

업로드 된 이미지의 이미지 방향을 iPhones에서 감지하고 그 방향을 조정하려고했습니다.exif 데이터 방향이 없습니다 - PHP 이미지 업로드

potrait에서 찍은 이미지를 -90도 회전하여 업로드하는 문제를 해결하려고합니다. 나는 작동하지 않는 switch 문을 여러 번 시도했기 때문에 JSON 반환에서 exif 데이터를 반환하기로 결정했습니다.

내가보기에 문제는 이들이 exif 데이터에서 방향이 없다는 것입니다.

나는 이렇게하고 있습니다 :

$imagefile = $fileToUpload["tmp_name"]; 
$destinationImage = imagecreatefromstring(file_get_contents($imagefile)); 
$exif = exif_read_data($imagefile); 
$moveUploadedFile = imagejpeg($destinationImage, $this->uploadDir . "/" . $newFileName, 100); 
imagedestroy($destinationImage); 

if ($moveUploadedFile) { 
    $return['ort'] = $exif; 
    echo json_encode($return); 
} 

내가 뭘 (개똥 벌레를 사용) 내 대가로보고 있어요 것은 :

:

FileName:"phpUQZFHh" 
FileDateTime:1410465904 
FileSize:473421 
FileType:2 
MimeType:"image/jpeg" 
SectionsFound:"COMMENT" 

Computed: OBJECT: 
Height:700 
Width:933 
IsColor:1 

Comment: ARRAY: 
0:"CREATOR: gd-jpeg v1.0 (using IJG JPEG v62), quality = 100" 

내가 EXIF ​​데이터과 같이 할 수 사용되고 싶어요

if (!empty($exif['Orientation'])){ 
     //get the orientation 
     $ort = $exif['Orientation']; 
     //determine what oreientation the image was taken at 
     switch($ort){ 
      case 2: // horizontal flip 
       break; 
      case 3: // 180 rotate left 
       $destinationImage = imagerotate($destinationImage, 180, -1); 
       break; 
     } 
    } 

어떤 도움이 필요합니까?

편집 : 업로드 된 이미지를 다운로드하고 속성을 확인한 후 업로드 프로세스에서 모든 exif 데이터가 제거 된 것처럼 보입니다.

아직도 업로드 전/업로드 중에 어떻게 회전했는지에 대해 여전히 당황 스럽습니다.

+0

왜 원래 수정되지 않은 원래 업로드 된 파일을 사용하는 대신 새로운 GD-lib 이미지를 여기에 만드나요? 이미지가 GD를 사용하여 생성되었다는 EXIF ​​데이터 한 줄만 얻으면 원본 EXIF ​​데이터를 잃어 버렸을 가능성이 큽니다. – CBroe

+0

처음 GD 및 이미지 업로드 작업을하기 때문에 사과 드리지만 회신 내용을 명확하게 이해하지 못합니다. 이미지 데이터가 삭제되면 괜찮습니다.하지만 세로로 찍은 이미지는 업로드 할 때 계속 회전합니다. 원본 파일을 사용하는 대신 코드에서 이미지를 어디에 수정합니까? – Lovelock

답변

0

iOS 기기에서만 사진을 업로드 할 경우 exif_read_data 함수의 반환 데이터에 'Orientation'값이 표시됩니다. 데스크톱 브라우저에서는 작동하지 않습니다. 내가 틀렸을지도 모른다.

+0

안녕하세요. iOS 기기에서 이미지를 업로드하지 않은 경우에도 '오리엔테이션'*이 있는지 확인하기 만하면됩니다. –

0

같은 문제가 발생했습니다. 실제로 일부 이미지는 Orientation에 exif 데이터가 전혀 없습니다. 일반적으로 "올바른"방향의 이미지는 가지고 있지 않습니다. 아이폰으로 찍은 풍경 이미지 하나를 보았습니다.

사진의 경우 처음에는 exif 데이터가 없었을 수 있습니다. 나는 그와 같은 약간의 사진도 가지고 있었다 (회전 한 -90의 정도 그러나 어떤 Orientation 정보도). 틀릴 수도 있지만 exif 데이터가 없으면 이미지의 방향이 잘못되었는지를 프로그램 방식으로 알 수 없습니다.

Orientation 정보가없는 잘못된 방향의 사진의 경우 사용자가 업로드 할 내용을 미리 보도록 (미리보기로) 확인하는 것이 좋습니다. IME를 사용하면 대부분의 사용자는 페인트/포토샵/등을 꺼내기 위해 기꺼이 나섰습니다. 사진을 잘 보도록하기 위해서입니다.