如何减少位图内存使用字节数但保持其尺寸
how to reduce the bitmap memory usage byte count but keep its dimensions
搜索并仅找到缩放位图以减小其尺寸和大小的解决方案。但是我正在寻找一种方法来减少位图的内存字节数并且不改变它的尺寸。
图像来自远程来源,不在我们的控制范围内。 ,将图片保存到设备本地后,稍后将以缩略图形式显示。注意到它经常抛出 OOM 异常。第一步是从文件加载时将位图缩小到更小的尺寸(例如 500x500 或 300x300),here 有一些建议,这有点帮助。
仔细观察发现缩小后的位图可能仍然有很大的字节数(从几百 k 到超过一兆)。
对于这种情况,内存中分辨率较低的位图应该没问题,那么有没有办法既可以保持位图的尺寸又可以减少内存字节数?
谢谢!
您可以将其读取为 RGB_565
而不是 ARGB_8888
,以将位深度从 4 bytes/pixel 减少到 2 bytes/pixel。然而,这就是您所能做的,因为 Bitmap
的内存占用量是像素数乘以每个像素的位深度。
搜索并仅找到缩放位图以减小其尺寸和大小的解决方案。但是我正在寻找一种方法来减少位图的内存字节数并且不改变它的尺寸。
图像来自远程来源,不在我们的控制范围内。 ,将图片保存到设备本地后,稍后将以缩略图形式显示。注意到它经常抛出 OOM 异常。第一步是从文件加载时将位图缩小到更小的尺寸(例如 500x500 或 300x300),here 有一些建议,这有点帮助。 仔细观察发现缩小后的位图可能仍然有很大的字节数(从几百 k 到超过一兆)。
对于这种情况,内存中分辨率较低的位图应该没问题,那么有没有办法既可以保持位图的尺寸又可以减少内存字节数?
谢谢!
您可以将其读取为 RGB_565
而不是 ARGB_8888
,以将位深度从 4 bytes/pixel 减少到 2 bytes/pixel。然而,这就是您所能做的,因为 Bitmap
的内存占用量是像素数乘以每个像素的位深度。