Android图片压缩不需要完全加载到内存中

9

有没有一种方法可以在不完全加载图像到内存中的情况下压缩图像?据我所知,BitmapFactory.decodeStream和类似的方法会将所有内容加载到内存中,并且只有在完全加载整张图片后,才能通过Bitmap.compress进行压缩。

我的任务是从Android发送图片到服务器。


除非Linux提供压缩图像的方法,否则我认为这是不可能的。压缩意味着计算。如果在Android中进行计算,则需要Android内存。 - Qian Sijianhao
1个回答

2
你可以使用BitmapRegionDecoder来读取原始图像的部分内容,然后将每个部分单独压缩并上传。

BitmapRegionDecoder可用于从图像中解码矩形区域。当需要对大型原始图像进行部分处理时,BitmapRegionDecoder特别有用。

要创建BitmapRegionDecoder,请调用newInstance(...)。给定一个BitmapRegionDecoder,用户可以反复调用decodeRegion()以获取指定区域的解码位图。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接