2011-05-16 3 views
0

"test.png"라는 이름의 왼쪽 방향 이미지 (예 : UIImageOrientationLeft의 'R'이미지 주석)가 있습니다. 먼저 UIImage로 읽은 다음 다른 UIImage를 만듭니다. 첫 번째 이미지 데이터와 방향 정보는 다음과 같습니다.회전 된 이미지를 똑바로 표시

UIImage *image = [UIImage imageNamed:@"test"]; 
image = [UIImage imageWithCGImage:image.CGImage scale:1.f orientation:UIImageOrientationLeft]; 
UIImageView *imageView = [[[UIImageView alloc] initWithImage:image] autorelease]; 
[imageView sizeToFit]; 

그러나 imageView에 표시된 이미지는 거꾸로 표시됩니다. 뭐가 문제 야?

답변

0

OK, 다소 혼란 스럽습니다. UIImageOrientationLeft은 EXIF ​​오리엔테이션 태그 6이 아니라 8에 해당합니다. 의 "왼쪽"은 이미지가 올바르게 표시 되려면 왼쪽으로 회전해야 함을 의미합니다. 은 왼쪽으로입니다. 따라서 UIImage에로드 된 왼쪽 방향 이미지 UIImageOrientationLeft은 표시 할 때 왼쪽으로 한 번 더 회전하여 이미지가 뒤집습니다.

+0

맞습니다. http://graphicssoft.about.com/od/digitalphotography/f/sideways-pictures.htm에서 사진 동작에 대한 일반적인 설명을 볼 수 있습니다. – Boeckm

0

UIImage가 방향을 자동으로 처리하고이 경우 두 번 뒤집었기 때문입니다. 참고 : RAW 이미지의 경우 다양한 이미지 처리 개체에서 제공하는 데이터에 의존해서는 안됩니다.

+0

그래서 문제는 UIImage에서 읽은 CGImage 데이터가 내가 기대 한 것이 아닐 수 있다는 것입니다. CGImage로 원시 데이터를 읽으면 여전히 imageWithCGImage : scale : orientation을 사용하여 원하는대로 UIImage를 만들 수 있습니까? – an0

+0

당신이 좋아하는 어떤 방식 으로든 이미지를로드하는 방법을 사용할 수는 있지만 마지막으로 확인한 이후로 Nikon RAW 사진과 같은 정확한 방향을 잡는 데있어 여전히 버그가 있었기 때문에 RAW 이미지의 일부 문제에 대비할 수 있습니다. – TheBlack

1

지난 몇 주 동안이 주제에 많은 시간을 할애했습니다. This이 도움이 될 수 있지만 자세한 설명은 this link을 확인하십시오.

두 게시물 사이에는 이미지가 회전 된 이유와 직접 회전하는 방법에 대한 정보가 있습니다.

관련 문제