Sunzxyong / Tiny

an image compression framework.(一个高保真、高压缩比的图片压缩框架)

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

压缩时候报OOM

mjbstc opened this issue · comments

您好,我正在使用这个很好的压缩框架,但是又到一个问题,就是有个图片为12M,压缩的时候报OOM,我的设置为保持原图比例,但如果把这个保持原图比例改为false,就不会报OOM了,但是图片会模糊,上面字就看不清了,不符合业务需求,所以有什么方法解决?

@mjbstc 12M的图片,是否为大长图图片?这种情况用图片压缩一般不能很好满足业务需求,比如:商品详情的详情这种大长图,这种可以使用BitmapRegionDecoder分段加载,可以解决这个业务场景

@Sunzxyong 感谢你的回复。
业务场景是将两个拍好的证件照,(合成前已将这两张图单独压缩)在app端合成为一张图,然后压缩后上传服务器,这个合成图不是大长图。在一些中低端机型上,由于内存分配容量较低,所以在压缩合成图片时就会报出oom,所以说的BitmapRegionDecoder分段加载这里用不上,并不需要加载。
能否优化压缩,或者在不OOM的前提下制定原图比例的最大缩放量。
最后再一次感谢作者提供这个优秀的工具。

@mjbstc 影响内存占用量主要是图片的宽高和每像素占用字节数,这里可以这样试试:
1、把Bitmap的RGB色彩位数改为RGB_565(比RBGA_8888内存省一半)
2、合成图的宽高是否过于大,比如一个2000x2000的RGB565图片,占用内存约为7.6M,这个内存量还是可以满足的。如果合成图的宽高过于大,可以主动设置宽高,或者配置baseline参数,设置图片压缩的基线大小(默认为1280),如果想要更大的比如设置为:2560等