yuchi's Development Home
글 수 201
아이폰 프로그래밍 학습겸 개인적인 필요에 의해서 만든 어플을 앱스토어에 등록했습니다.
몇 년전 아이팟을 처음 구입했을 당시 DSLR로 촬영한 1000만화소 이상의 이미지를 아이팟에서 리뷰하고 싶었는데 불가능하더군요. 아이튠즈의 사진 동기화는 화질을 엄청나게 떨어뜨리면서 리사이즈를 해버렸습니다.
유료 이미지뷰어 몇 개를 구입했으나 99.99%의 앱이 리사이즈된 이미지를 보여주더군요. Good Reader 한 개만 1:1픽셀 매칭을 해줬는데 그것도 어느 정도 크기를 넘어가면 아이폰3GS와 같이 256MB메모리 환경에선 크래시해버렸습니다.
자료를 찾아보고나서 코코아터치 프레임워크에서 지원하는 UIView등으로는 1:1이미지 출력이 불가능하다는 것을 알았습니다.
pc환경에선 지극히 당연하고 또 만들기도 쉬운 어플리케이션인데 아이폰 플랫폼엔 그런 뷰어가 없어서 늘 불만이었습니다.
그래서 이번에 아이폰 프로그래밍을 학습하면서 직접 만들기로 했습니다.
이것은 4000*3000정도의 빅사이즈 이미지를 1:1픽셀 매칭으로 보여주는 간단한 어플입니다.
직접 JPEG파일을 디코딩하고 OpenGL로 프레임버퍼 잡아서 텍스쳐로 뿌려주는 방식입니다.
축소시에는 5X5가우시안 필터를 적용해줍니다.
아이폰3GS의 기본해상도(320*480), 아이폰4의 레티나 디스플레이(640*960), 아이패드1,2의 해상도(1024*768)를 모두 지원합니다.
아이폰 3GS에선 메모리가 부족할 수 있어서 가우시안 필터링을 적용하거나 스케일링할때 따로 복사본을 만들지 않고 원본으로부터 blt할때 리얼타임으로 처리하도록 했습니다.
그럼에도 불구하고 4000*3000 정도의 이미지는 30메가 이상의 여유 메모리를 필요로 하기 때문에 백그라운드에 어플이 많이 떠 있다면 메모리 부족으로 경고를 띄우고 죽을(os가 죽입니다) 수 있습니다.
큰 이미지를 불러오려면 다른 어플들을 종료해서 메모리를 확보해주세요. (이 문구를 앱스토어 디스크립션에 적었다가 리젝당했습니다.-_-)
필요하신 분들은 받으세요. 무료입니다.
http://itunes.apple.com/kr/app/ggimageviewer/id434436589?mt=8
iPic 어플 써보셨나요 ㅎㅎ 좋답니다.