国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > Android > 正文

Android實現圖片壓縮(bitmap的六種壓縮方式)

2019-12-12 03:48:33
字體:
來源:轉載
供稿:網友

Android中圖片是以bitmap形式存在的,那么bitmap所占內存,直接影響到了應用所占內存大小,首先要知道bitmap所占內存大小計算方式:

圖片長度 x 圖片寬度 x 一個像素點占用的字節數

以下是圖片的壓縮格式:

這里寫圖片描述

其中,A代表透明度;R代表紅色;G代表綠色;B代表藍色。

ALPHA_8

表示8位Alpha位圖,即A=8,一個像素點占用1個字節,它沒有顏色,只有透明度

ARGB_4444

表示16位ARGB位圖,即A=4,R=4,G=4,B=4,一個像素點占4+4+4+4=16位,2個字節

ARGB_8888

表示32位ARGB位圖,即A=8,R=8,G=8,B=8,一個像素點占8+8+8+8=32位,4個字節

RGB_565

表示16位RGB位圖,即R=5,G=6,B=5,它沒有透明度,一個像素點占5+6+5=16位,2個字節

我是用的小米手機2s來測試的,從sd卡取出一個照片,如下所示:

bit = BitmapFactory.decodeFile(Environment        .getExternalStorageDirectory().getAbsolutePath()        + "/DCIM/Camera/test.jpg");    Log.i("wechat", "壓縮前圖片的大小" + (bit.getByteCount() / 1024 / 1024)        + "M寬度為" + bit.getWidth() + "高度為" + bit.getHeight());

出來的log是:

這里寫圖片描述

將取得的bitmap進行壓縮,下面開始說,bitmap的幾種壓縮方式。

1.質量壓縮

      ByteArrayOutputStream baos = new ByteArrayOutputStream();      int quality = Integer.valueOf(editText.getText().toString());      bit.compress(CompressFormat.JPEG, quality, baos);      byte[] bytes = baos.toByteArray();      bm = BitmapFactory.decodeByteArray(bytes, 0, bytes.length);      Log.i("wechat", "壓縮后圖片的大小" + (bm.getByteCount() / 1024 / 1024)          + "M寬度為" + bm.getWidth() + "高度為" + bm.getHeight()          + "bytes.length= " + (bytes.length / 1024) + "KB"          + "quality=" + quality);

其中quality是從edittext獲取的數字,可以從0

主站蜘蛛池模板: 巨野县| 天门市| 远安县| 合川市| 东宁县| 固阳县| 巴青县| 莱芜市| 祁门县| 三原县| 赣州市| 吴川市| 巨野县| 舒兰市| 仙居县| 瓦房店市| 尚志市| 庐江县| 友谊县| 宜兰县| 张掖市| 祁阳县| 成安县| 贵溪市| 海兴县| 保靖县| 哈密市| 固阳县| 公主岭市| 通许县| 塘沽区| 枝江市| 旺苍县| 澄迈县| 云阳县| 莱西市| 青河县| 宜阳县| 淮滨县| 平谷区| 靖江市|