我目前正在制作一个修改图像某些字节的 Android 应用程序。为此,我编写了以下代码:
Bitmap bmp = BitmapFactory.decodeStream(new FileInputStream(path));
ByteBuffer buffer = ByteBuffer.allocate(bmp.getWidth()*bmp.getHeight());
bmp.copyPixelsToBuffer(buffer);
return buffer.array();
问题是这种方式使用了太多的堆内存,并且抛出了OutOfMemoryException
. 我知道我可以让 App 的堆内存更大,但这似乎不是一个好的设计选择。
有没有更方便内存的方式来改变图像的字节数?