Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

压缩时候报OOM #70

Open
mjbstc opened this issue Mar 29, 2019 · 3 comments
Open

压缩时候报OOM #70

mjbstc opened this issue Mar 29, 2019 · 3 comments

Comments

@mjbstc
Copy link

mjbstc commented Mar 29, 2019

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

@Sunzxyong
Copy link
Owner

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

@mjbstc
Copy link
Author

mjbstc commented Apr 2, 2019

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

@Sunzxyong
Copy link
Owner

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants