日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網為廣大站長提供免費收錄網站服務,提交前請做好本站友鏈:【 網站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

阿里工程師:談一談Bitmap 的四種壓縮方式

 

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

像素數 x 像素大小

=

圖片長度(單位為像素)x 圖片寬度(單位為像素)x 一個像素點占用的字節數

可采用的壓縮方法:

  1. 質量壓縮:內存不變,壓縮轉化后的 bytes.length 減少,適用于傳輸,png 無效
  2. 采樣率壓縮(Options):改變寬高,減少像素,采用一定的采樣算法
  3. 縮放法壓縮(Matrix):改變寬高,減少像素,采用一定的縮放算法(數字圖像處理相關)
  4. RGB_565:改變字節數

一、質量壓縮

樣板代碼:

阿里工程師:談一談Bitmap 的四種壓縮方式

 

說明:

使用 JPEG 格式的質量壓縮

bmRaw.compress(Bitmap.CompressFormat.JPEG, 50, baos)
  • 對一張透明圖片(png),內存、寬高不變,bytes.length 減少。圖片會失去透明度,透明處變黑,
  • 對一張非透明圖片(png、jpg),內存、寬高不變,bytes.length 減少。

使用 PNG 格式的質量壓縮

bmRaw.compress(Bitmap.CompressFormat.PNG, 50, baos)
  • 對一張透明圖片(png),沒有影響
  • 對一張非透明圖片(png、jpg),沒有影響

 

二、采樣率

樣板代碼:

阿里工程師:談一談Bitmap 的四種壓縮方式

 

說明:

阿里工程師:談一談Bitmap 的四種壓縮方式

 

The sample size is the number of pixels in either dimension that correspond to a single pixel in the decoded bitmap. 樣本大小是在解碼位圖中對應于單個像素的任一維度上的像素個數。也就是說,如果 inSampleSize = 2,采樣后的一個像素在 x 軸上相當于之前的 2 個像素,在 y 軸上也相當于之前的 2 個像素。 即采樣后的一個像素相當于之前的 2*2=4 個像素。

三、縮放法

樣板代碼:

阿里工程師:談一談Bitmap 的四種壓縮方式

 

說明:

與采樣率法類似。

四、RGB_565

樣板代碼:

val options = BitmapFactory.Options()
options.inPreferredConfig = Bitmap.Config.RGB_565
val bmNew = BitmapFactory.decodeResource(resources, drawableId, options)

說明:

ALPHA_8 代表8位Alpha位圖,一個像素1個字節 ARGB_4444 代表16位ARGB位圖,一個像素2個字節 ARGB_8888 代表32位ARGB位圖,一個像素4個字節 RGB_565 代表16位RGB位圖,一個像素2個字節

阿里工程師:談一談Bitmap 的四種壓縮方式

 

如果 inPreferredConfig 不為 null,解碼器會嘗試使用此參數指定的顏色模式來對圖片進行解碼,如果 inPreferredConfig 為 null 或者在解碼時無法滿足此參數指定的顏色模式,解碼器會自動根據原始圖片的特征以及當前設備的屏幕位深,選取合適的顏色模式來解碼,例如,如果圖片中包含透明度,那么對該圖片解碼時使用的配置就需要支持透明度,默認會使用 ARGB_8888 來解碼。所以直接設置 RGB_565:

  • 對于一張透明圖片(png),內存、寬高不變,bitmap 也不會失去透明度。
  • 對于一張非透明圖片(png、jpg),寬高不變,內存減小。

copy 一遍可以減少內存,但生成的 bitmap 會失去透明度,透明處變黑。

val bmScaled = bmRaw.copy(Bitmap.Config.RGB_565, true)

五、最后

漫漫開發之路,我們只是其中的一小部分……只有不斷的學習、進階,才是我們的出路!才跟得上時代的進步!

今年年初我花一個月的時間收錄整理了一套知識體系,如果有想法深入的系統化的去學習的,可以私信我【安卓】,我會把我收錄整理的資料都送給大家,幫助大家更快的進階。

阿里工程師:談一談Bitmap 的四種壓縮方式

 

重要的事說三遍,轉發+轉發+轉發,讓更多需要的朋友們都可以看到并且領到!

分享到:
標簽:Bitmap
用戶無頭像

網友整理

注冊時間:

網站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網站吧!
最新入駐小程序

數獨大挑戰2018-06-03

數獨一種數學游戲,玩家需要根據9

答題星2018-06-03

您可以通過答題星輕松地創建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數有氧達人2018-06-03

記錄運動步數,積累氧氣值。還可偷

每日養生app2018-06-03

每日養生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定