Bitmap圖片壓縮

圖片壓縮就是為了避免我們內(nèi)存的溢出。而BitMap是android系統(tǒng)中對圖像處理最重要的一個類,所以我們可以用他來對圖像進(jìn)行剪切,壓縮,一系列操作。常用的壓縮方法有質(zhì)量壓縮,采樣率壓縮,縮放法壓縮,RGB_565壓縮等。

質(zhì)量壓縮

質(zhì)量壓縮不會減少圖片的像素,他是在保持像素的前提下來改變圖片的透明度,但是圖片的長,寬,像素都不會變,所以他占用的內(nèi)存也不會改變。

采樣率壓縮

采樣率壓縮其實(shí)就是縮放bitamp的尺寸,通過調(diào)節(jié)其inSampleSize參數(shù),比如調(diào)節(jié)為2,寬高會為原來的1/2,寬高都減少了,內(nèi)存自然也就減少了。

縮放法壓縮

放縮法壓縮使用的是通過矩陣對圖片進(jìn)行裁剪,也是通過縮放圖片尺寸,來達(dá)到壓縮圖片的效果,和采樣率的原理一樣

RGB_565壓縮

這是通過壓縮像素占用的內(nèi)存來達(dá)到壓縮的效果,一般不建議使用ARGB_4444,因為畫質(zhì)實(shí)在是辣雞,如果對透明度沒有要求,建議可以改成RGB_565,相比ARGB_8888將節(jié)省一半的內(nèi)存開銷。

圖片二次采樣壓縮

1.第一次采樣

inJustDecodeBounds設(shè)置為ture,只會加載圖片的邊框,不會加載圖片的具體內(nèi)容。

2.根據(jù)原圖的寬高,結(jié)合控件的寬高計算出縮放比例,然后通過inSamplesize(in 三pou Size)對圖片進(jìn)行尺寸的縮放。

3.二次采樣時需要將圖片加載出來顯示,不能只加載圖片的框架,因此inJustDecodeBounds屬性要設(shè)置為false。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Android中圖片是以bitmap形式存在的,這篇文章主要介紹了Android實(shí)現(xiàn)圖片壓縮(bitmap的六種壓...
    Ezea閱讀 603評論 0 2
  • 圖片壓縮就是為了避免我們內(nèi)存溢出,所有要對一系列進(jìn)行壓縮二次采樣等 1.什么是OOM?為什么會引起OOM? out...
    lay_wn閱讀 1,041評論 0 1
  • 一直以來Bitmap都是開發(fā)中很棘手的問題,這個問題就是傳說中的OOM(java.lang.OutofMemory...
    M悇芐冋憶閱讀 5,053評論 0 11
  • 摘要:對android 上圖片壓縮,其實(shí)總結(jié)起來基本可以分為兩類壓縮:尺寸壓縮和質(zhì)量壓縮, 尺寸壓縮其實(shí)也可以理解...
    男爵是只貓丶閱讀 8,980評論 2 14
  • 7.1 壓縮圖片 一、基礎(chǔ)知識 1、圖片的格式 jpg:最常見的圖片格式。色彩還原度比較好,可以支持適當(dāng)壓縮后保持...
    AndroidMaster閱讀 2,702評論 0 13

友情鏈接更多精彩內(nèi)容