【Android開發】Bitmap的質量壓縮法
阿新 • • 發佈:2018-12-27
public static Bitmap compressImage(Bitmap image) { ByteArrayOutputStream baos = new ByteArrayOutputStream(); //質量壓縮方法,這裡100表示不壓縮,把壓縮後的資料存放到baos中 image.compress(Bitmap.CompressFormat.JPEG, 100, baos); int options = 100; while ( baos.toByteArray().length / 1024>100) { //迴圈判斷如果壓縮後圖片是否大於100kb,大於繼續壓縮 baos.reset();//重置baos即清空baos image.compress(Bitmap.CompressFormat.JPEG, options, baos);//這裡壓縮options%,把壓縮後的資料存放到baos中 options -= 10;//每次都減少10 } //把壓縮後的資料baos存放到ByteArrayInputStream中 ByteArrayInputStream isBm = new ByteArrayInputStream(baos.toByteArray()); Bitmap bitmap = BitmapFactory.decodeStream(isBm, null, null); //把ByteArrayInputStream資料生成圖片 return bitmap; }