方法一:

①.得到一张图片的字节数组;

②.新建BitmapFactroy.Options的对象options,设置options.inJustDecodeBounds为true

③.利用BitmapFactory.decodeByteArray(byte,0,byte.length,options)得到图片的宽高

④.利用得到的宽高与压缩后的宽高相除并且用三目运算获得比例更大的那个值scale

⑤.设置options.inSimpleSize=scale,并且设置options.inJustDecodeBounds=false

⑥.利用BitmapFactory.decodeByteArray(byte,0,byte.length,options)得到压缩后的bitmap图片


方法二:

同一,

①.将字节数组改成本地路径,然后通过流的形式加载并得到宽高

②.将宽高以二进制的形式移动i位直到都小于或等于需要的宽高

③.得到options.inSampleSize = (int) Math.pow(2.0D, i);其他部分相同