2013년 9월 17일 화요일

[Android] 이미지 사이즈 초과시 Resize 방법

이미지를 넣고 실행을 시켰는데 로그캣에 아래와 같은 메시지가 나오면서
이미지가 나오지 않는 현상이 발생했다.

Bitmap too large to be uploaded into a texture (2316x4632, max=4096x4096)

그래서 찾아보니
허니콤 버전부터 하드웨어 가속을 이용할수 있어서
2D를 랜더링 할때도 openGL을 이용할수 있게 되어서 이미지를 텍스쳐 형태로 전달하게 되는데,
이때 이미지 싸이즈가 4096x4096 이상되면 텍스쳐로 처리가 안되기 때문이라고 한다.

그래서 BitmapFactory 에서 SampleSize옵션으로 주어서 Bitmap을 작게 축소해서 불러오면 된다고 한다.


아래의 코드는 4픽셀을 1픽셀로 쳐서 가져오겠다는 것이다.
즉, 1/4크기로 줄여서 가져오는 것이다.
BitmapFactory.Options options = new BitmapFactory.Options();
options.inSampleSize = 4;
Bitmap src = BitmapFactory.decodeFile( "/sdcard/image.jpg", options );
Bitmap resized = Bitmap.createScaledBitmap( src, dstWidth, dstHeight, true ); 





아래의 블로그를 참고해보자.
http://aroundck.tistory.com/59

댓글 없음:

댓글 쓰기