2012-02-26 6 views
1

카메라 이미지를 회전하려고합니다. 코드는 다음과 같습니다android : 이미지 처리를위한 메모리 관리를 향상시키는 방법

Bitmap result = Bitmap.createBitmap(bitmap.getHeight(), bitmap.getWidth(), Bitmap.Config.ARGB_8888); 
Canvas canvas = new Canvas(result); 
canvas.save(); 
canvas.rotate(90); 
canvas.translate(0, -1*bitmap.getHeight()); 
canvas.drawBitmap(bitmap, new Matrix(), null); 
canvas.restore(); 
String path = String.format(dir+"pic_%d.jpg", System.currentTimeMillis()); 
stream = new FileOutputStream(path); 
bitmap.compress(CompressFormat.JPEG, this.imageQuality, stream); 
stream.flush(); 
stream.close(); 

문제가 있습니다 : 내가 OutOfMemoryException이 (첫 번째 줄)을 얻고있다. 추가 스레드 또는 다른 솔루션을 통해이를 수행 할 수있는 방법이 있습니까? 이미지 다운 스케일링은 현재 옵션이 아닙니다.

답변

2

이미지에 알파 채널이 필요하지 않은 경우 ARGB_8888 대신 RGB_565를 사용할 수 있습니다. 그러면 픽셀 당 2 바이트가 절약됩니다.

관련 문제