yuchi's Development Home
글 수 201
맥 추종자들이 보면 열폭하겠지만 이건 확실히 해두고 싶다.
빌어먹을 Mac Os X
빌어먹을 X Cdoe
빌어먹을 Objective C
빌어먹을 COCOA프레임웍
'쓰.레.기.같.아'
하여간.
예전부터 불만이 많았는데 아이폰에는 제대로된 이미지뷰어가 거의 없다.
코코아터치에서 지원해주는 컴포넌트만 사용하니 빅사이즈 이미지를 제대로 보여주지 못한다. 모바일에서 그런 큰 이미지를 뭐하러 보냐...라고 반문할수도 있겠지만 DSLR로 찍은 사진들 갖고 다니면서 보려면 리사이즈 하기도 짜증나고 때로는 세세하게 보는걸 원할수도 있다.
가로세로 2000픽셀 이상의 이미지를 제대로 보여주는 뷰어가 딱 두개 있다.
GoodReader와 ImageViewer라는 어플인데 이것도 파일이 커지면 두 녀석 다 다운된다. Image Viewer는 어느 정도 크기 이후로는 자동 리사이드 된 상태로 로딩되는지 1:1 픽셀을 보여주지 못한다.
GoodReader는 다운만 안되면 1:1픽셀로 제대로 보여주는데 아이폰3GS에서는 대충 3MB이상의 파일을 로드하면 다운된다.
아이폰4에서는 정상작동을 확인했다.
GoodReader의 경우엔 너무 큰 텍스쳐를 할당할 수 없거나 디코딩된 이미지를 보관할 메모리가 없어서 크래시하는거 같다.
[이미지를 인코딩된 상태로(압축이 풀리지 않은 상태로) 메모리에 들고 있다가 화면에 렌더링 될 영역만큼만 화면 사이즈와 대응되는 텍스쳐에 실시간으로 디코딩해서 써주면 4000*4000정도 이미지는 출력할 수 있을거 같다.]
라고 전략을 세웠다.
일단 xcode에서 openGL프로젝트로 시작, 텍스쳐 생성하고 업데이트 해주고 이미지 로딩하는 코드는 싹 c++로 작성했다.
터치 입력 코드도 c++코드쪽으로 리다이렉션시켰다.
일단 OpenGL ES를 사용해서 텍스쳐 한장에다가 실시간으로 이미지를 카피해와서 출력하는 코드는 작성완료. 스크롤시켜가면서 볼 수 있게는 만들었다.
아직 테스트니까 리소스에다 이미지를 직접 넣었는데 아이튠즈에서 파일을 넣고 폰에서 골라서 읽을 수 있게 해야한다. 그런데 어떻게 하는지 전혀 모르겠다. 이게 3.0 SDK때는 없던 기능이기도 하고... 한참 찾아봐야할듯.
개선해야할 점
1.현재는 1:1픽셀로 보여주고 있으므로 축소기능을 넣어야한다.
2.아이튠즈에서 넣어주는 파일을 셀렉트할 수 있도록 해야한다.
3.현재는 tga포맷을 사용하므로 jpg파일 디코딩기능을 넣어야한다.
빌어먹을 Mac Os X
빌어먹을 X Cdoe
빌어먹을 Objective C
빌어먹을 COCOA프레임웍
'쓰.레.기.같.아'
여기서 빵 터졌습니다.
^^