我正在尝试旋转相机图像。代码看起来像这样:
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(第一行)。有没有办法通过额外的线程或其他解决方案来完成这项工作?缩小图像目前不是一种选择。
答案 0 :(得分:2)
如果您的图片中不需要Alpha通道,则可以使用RGB_565而不是ARGB_8888。这将为每个像素节省2个字节。