3

iPhone에서 이미지의 방향을 올바르게 잡는 데 문제가 있습니다. AssetLibrary 클래스를 사용하여 이미지에 액세스하고 있습니다.ALAssetOrientation 및 UIImageOrientation을 사용하여 올바른 방향을 결정할 때의 문제

모두 내가보기에 이미지를 올바르게 표시하고 싶습니다. 불행히도 초상화 모드로 찍은 일부 이미지의 경우에는 의미가없는 방향입니다.

 ALAssetRepresentation *representation = [myasset defaultRepresentation]; 
     ALAssetOrientation  orient   = [representation orientation]; 
     ALAssetOrientation  alorient = [[myasset valueForProperty:@"ALAssetOrientation"] intValue]; 
     UIImage     *timg   = [[UIImage alloc] initWithCGImage:[representation fullScreenImage]]; 
     UIImageOrientation  imgorient  = [timg imageOrientation]; 

THe variable orient = ALAssetOrientationRight. 
The variable alorient = ALAssetOrientationUp. 
The variable imgorient = UIImageOrientationUp 

내가 사용하던 : 프레임 워크라고 블록에서

, 나는 그것이 '위로'지향 동안의 아이폰 카메라로 찍은 사진에 대한 다음 호출을 만들고 있어요 orient 값을 사용하여 이미지를 회전시켜 '위로'표시합니다. 불행히도 가로 모드에서 찍은 이미지가있는 경우 방향이 잘못되어 동일한 코드가 작동하지 않습니다.

scale : orientation : orientation 매개 변수에 orient을 사용하여 과부하를 시도했지만 이미지를 방향 설정으로 초기화했지만 이미지를 잘못 회전합니다. 이러한 호출이 반환하는 방법을 제공

이 비 결정적 것, 다른 결과 : 당신의 도움이 크게 감사합니다

ALAssetOrientation  orient = [representation orientation]; 
ALAssetOrientation  alorient = [[myasset valueForProperty:@"ALAssetOrientation"] intValue]; 

. 윌

+0

진지하게, 아무도 이것에 대해 의견을 말하지 않았는가? !!? – willmapp

답변

0

문제는 잘못된 속성 이름을 사용한다는 것입니다

감사합니다. 코드에서

:

[[myasset valueForProperty:@"ALAssetOrientation"] intValue]; 

은 다음과 같아야합니다

[[myasset valueForProperty:@"ALAssetPropertyOrientation"] intValue]; 

documentation-[ALAsset valueForProperty:]

If property is not a valid key, returns ALErrorInvalidProperty. 
0에 따르면

코드에서 ALErrorInvalidProperty을 int로 캐스팅하려고 시도하면 0이됩니다. 우연으로 ALAssetOrientationUp의 값은 0이므로 alorient 변수는 항상 ALAssetOrientationUp으로 계산됩니다.