2012-02-26 51 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

如果您不需要图像中的Alpha通道,则可以使用RGB_565而不是ARGB_8888。这将为您节省每个像素2个字节。