bitmap的壓縮

能夠本身封裝一個靜態公共方法來調用。以下:

public static Bitmap compressImage(Bitmap image) {
ByteArrayOutputStream baos = new ByteArrayOutputStream();
image.compress(Bitmap.CompressFormat.JPEG, 100, baos);//質量壓縮方法,這裏100表示不壓縮,把壓縮後的數據存放到baos中  
int options = 90;
while (baos.toByteArray().length / 1024 > 100) {//循環判斷若是壓縮後圖片是否大於100kb,大於繼續壓縮
baos.reset();//重置baos即清空baos 
image.compress(Bitmap.CompressFormat.JPEG, options, baos);//這裏壓縮options%,把壓縮後的數據存放到baos中 
options -= 10;//每次都減小10
}
ByteArrayInputStream isBm = new ByteArrayInputStream(baos.toByteArray());//把壓縮後的數據baos存放到ByteArrayInputStream中 
Bitmap bitmap = BitmapFactory.decodeStream(isBm, null, null);//把ByteArrayInputStream數據生成圖片
return bitmap;}
相關文章
相關標籤/搜索