woong's
Android 대용량 이미지 처리 본문
Android 대용량 이미지 처리
안녕하세요 . Android 대용량 이미지 처리에 관하여 포스트를 작성해보려 합니다 .
위 링크를 참고하시면 도움이 될것 같습니다 . 예를 들어 이미지 용량이 3메가 입니다 . 3메가짜리 이미지를 로드하면 보통 디바이스에서는 Out Of Memory 에러를 나타 냅니다 . 이미지를 로드하는데 메모리가 부족하여 나타나는 이미지 입니다 . 이런경우에는 이미지를 리사이즈 하는 방법이 있습니다 .
이미지 리사이즈 방법입니다 . 보통 이렇게 진행하면 왠만한 이미지 처리는 Out Of Memory 가 일어나지 않고 부드럽게 처리 할수 있습니다 . 제가 3메가 짜리 이미지 20개 리사이즈를 하여 Pager 처리 해보니 부드럽게 나타나는것 같습니다 . 사진은 리사이즈해도 해상도가 눈에 구별이 가지 않을정도 입니다 . 하지만 예를 들어서 도면이라고 생각해보면 어떨까요 ... ?? 선들이 아마 깨지거라 생각합니다 . 또는 이미지 리사이즈를 하면 안되는 경우가 있죠 . 그경우에는 InputStream 을 통해서 처리 해보았습니다 .
InputStream 을 통해서 대용량 이미지 파일을 받아와서 Bitmap 으로 변환합니다 . 이작업은 쓰레드를 통해서 진행하셔야 합니다 . main Thread 는 UI 를 관장하고 File 이나 , Download 등 시간이 오래걸리는것은 Thread 를 통해서 비동기 처리해야 부드러운 UI 를 제공할수 있습니다 . InputStream is = getResources().openRawResource(image); return BitmapFactory.decodeStream(is); 위코드가 핵심 코드입니다 . 이와 같이 처리를 하면 이미지 리사이즈 하는 것보다 퍼포먼스는 조금 떨어지는것 같습니다 . 그래도 사용자가 사용할만큼의 퍼포먼스는 나타나는것 같습니다 . 필히 이미지 리사이즈가 되지않는경우는 이와같이 진행하는것도 괜찮을거 같습니다 . |
'Develop > Android' 카테고리의 다른 글
Android Animation FadeIn , FadeOut 사용하기 (0) | 2016.02.14 |
---|---|
Vertical & Hrizontal ViewPager 사용하기 (0) | 2016.02.14 |
Android ViewPager Fragment 사용하기 (0) | 2016.02.14 |
Android ViewPager 사용하기 (0) | 2016.02.14 |
Android Color Picker 사용 하기 (0) | 2016.02.14 |