2012-12-20 3 views
0

안녕하세요. 내 애플리케이션에 사진 업 로더가있어서 플레이어가 내 애플리케이션에서 자신의 사진을 업로드 할 수 있습니다. X - by - X 픽셀 이미지 (비 망막 디스플레이 용)와 2X -> 2 픽셀 이미지 (망막 디스플레이 용)의 두 이미지를 만들기 위해 업로드 된 각 이미지를 자르고 크기를 조정합니다.프로그래밍 방식으로 망막 및 비 망막 이미지를 writeToFile을 통해 로컬 저장소에 추가 하시겠습니까?

나는 다음 [photoDataNonRetina writeToFile:pathNonRetina atomically:YES] 및 photoDataNonRetina 및 photoDataRetina이있는 NSData 객체 및 각 이미지의 파일 이름은 각각 photo.png[email protected] 있습니다 [photoDataRetina writeToFile:pathRetina atomically:YES]을 통해 지역의 플레이어의 개인 문서 디렉토리에 두 이미지를 저장합니다.

이후 로컬 개인 문서 디렉터리에서 이미지를 검색하여 장치에 망막 디스플레이가 있는지 여부에 따라 적절한 이미지가 검색되도록하려면 어떻게해야합니까? 지금 나는 다음과 비슷한 것을하는 것으로 추측 할 것입니다 :

제외하면 망막이 아닌 이미지를로드하는 것만 보입니까?

+1

왜 시도하지 않으시겠습니까 –

+0

무엇이 질문입니까? –

+1

두 가지 크기의 이미지를 모두 만드는 이유는 무엇입니까? 주어진 장치는 두 가지 크기 중 하나만 필요합니다. 현재 장치에 필요한 크기 (X 또는 2X) 만 만들면됩니다. – rmaddy

답변

0

이 시도 :

if ([[UIScreen mainScreen] respondsToSelector:@selector(displayLinkWithTarget:selector:)]   && 
([UIScreen mainScreen].scale == 2.0)) { 
    // Retina display 
} else { 
    // non-Retina display 
} 
+0

주 화면이'displayLinkWithTarget : selector :'메소드에 응답하는지 확인하는 목적은 무엇입니까? 어떻게이 질문과 관련이 있습니까? – rmaddy

0

어쩌면이?

if ([[UIScreen mainScreen].scale > 1) { 
    NSString *path = [[self pathForPlayer:player] stringByAppendingPathComponent:@"[email protected]"]; 
    UIImage * image = [UIImage imageWithContentsOfFile:path]; 
    UIImage * retinaImage = [UIImage imageWithCGImage:[image CGImage] scale:2 orientation:[image imageOrientation]]; 
    return retinaImage; 
} else { 
    NSString *path = [[self pathForPlayer:player] stringByAppendingPathComponent:@"photo.png"]; 
    return [UIImage imageWithContentsOfFile:path]; 
} 
0

파일 이름에서 확장자를 제거하기 만하면됩니다.

NSString *path = [[self pathForPlayer:player] stringByAppendingPathComponent:@"photo"]; 
return [UIImage imageWithContentsOfFile:path]; 
+0

유망한 것 같습니다! 나는 그것을 시험해야 할 것이다. 한 번 업데이트됩니다. –

관련 문제