搜索

首页  >  问答  >  正文

Android压缩图片,程序崩溃

高洛峰高洛峰2770 天前398

全部回复(3)我来回复

  • ringa_lee

    ringa_lee2017-04-17 16:58:44

    image.compress()这个方法根本不会减小Bitmap的大小,这个实现不了图片压缩。所以你baos、isBm都占用了少的内存空间。直接使用inSampleSize来压缩还好

    回复
    0
  • PHPz

    PHPz2017-04-17 16:58:44

    按照你的写法,一个2000*1400的照片的insamplesize会被设置为1,解码时需要的内存是会飙升很高的
    如果不是对清晰度有特别要求的话,没有必要把图片宽高设置成主流屏幕大小,targetsize可以设定为高的一半就可以显示清楚了
    另外,还可以实时动态监测可用内存来动态调整insamplesize

    回复
    0
  • 高洛峰

    高洛峰2017-04-17 16:58:44

    你这两个方法既然都是接收一个Bitmap的参数,那么在调用时,你肯定已经将图片读取到内存中了。造成内存飙升是肯定的。
    如果要进行图片压缩,那么最好接受图片的存储位置,在读取的时候进行压缩,这里可以通过Options这个类来进行设置,然后进行保存。
    在图片压缩的问题上,尽量不要将原图加载进内存,如果已经创建了原图的实例,那么内存就很容易爆掉的。

    回复
    0
  • 取消回复