我正在使用以下代码从android中的图像文件中检索位图:
BitmapFactory.Options options = new BitmapFactory.Options();
options.inPreferredConfig = Bitmap.Config.ARGB_8888;
Bitmap bitmap = BitmapFactory.decodeFile(path, options);
Run Code Online (Sandbox Code Playgroud)
但是,位图的大小是文件大小的两倍多.例如,对于大小为520kb的文件,位图大小约为1.3MB.有没有办法可以获得与文件大小相同的位图?
位图大小是没有压缩的纯内存数据.您可以使用每个像素4个字节(使用您的设置)计算大小.
您的文件可能采用压缩格式,如jpg.如果没有压缩,它将占用相同的空间.
位图在内存中保持未压缩的原因基本上就是性能.您可以以未压缩的方式更快地读取数据并使用它.例如,如果您想查看特定像素的颜色,则需要先解压缩数据.这需要时间,你检查的像素越多,花费的时间就越多.
从存储中读取文件时,与完整读取过程相比,解压缩只需要一段可忽略的时间.因此,与"按需"解压缩相比,您不会产生很大的性能影响.
| 归档时间: |
|
| 查看次数: |
617 次 |
| 最近记录: |