安卓BitmapFactory處理圖片

一驹碍,Bitmap基本概念:

1.bitmap是Android系統(tǒng)中的圖像處理的重要類之一及塘;

2.通過bitmap我們可以獲取到圖片的相關(guān)信息尤勋;

3.bitmap文件圖像效果好就需要占用越大存儲空間浴栽;

二肚吏,Bitmap的加載方式:
1.BitmapFactory.decodeBetyArray();//字節(jié)數(shù)組

2.BitmapFactory.decodeFile();//文件路徑

3.BitmapFactory.decodeResource();//資源ID

4.BitmapFactory.decodeStream();//流

Bitmap不做處理的加載方式:
Bitmap bitmap = BitmapFactory.decodeResource(getResources,R.drawable.ic_launcher,null);
//最后一個參數(shù)是BitmapFactory.Options,bitmap的高效處理就是通過BitmapFactory.Options來設(shè)置的

三吮蛹,BitmapFactory.Options的作用:

1.防止內(nèi)存溢出荤崇;

2.節(jié)省內(nèi)存開銷;

3.系統(tǒng)更流暢潮针;

四术荤,BitmapFactory.Options的重要屬性:

1.injustDecodeBounds;

*設(shè)為true,那么BitmapFactory并不會真的返回一個Bitmap給你每篷,它僅僅會把它的寬瓣戚,高取回來給你,這樣就不會占用太多的內(nèi)存焦读,也就不會那么頻繁的發(fā)生OOM子库。

*設(shè)置為false,BitmapFactory返回bitmap;

2.outWidth&outHeight;

*bitmap圖像的寬和高矗晃;

3.inSampleSize;

獲取采樣率

*inSampleSize大于1時仑嗅,圖像高刁品、寬分別以2的inSampleSize次方分之一縮小

*inSampleSize小于等于1時痢掠,圖像高九杂、寬不變祷嘶;

4.inpreferredConfig:

*ALPHA_8: 每個像素用占8位,存儲的是圖像的透明值,占1個字節(jié);

*RGB_565:每個像素用占16位,分別為5-R,6-G,5-B通道,占2個字節(jié);

*ARGB-4444:每個像素占16位,即每個通道用4位表示,占2個字節(jié);

*ARGB_8888:每個像素占32位,每個通道用8位表示,占4個字節(jié);

5.inDither:

*是否進行圖像抖動處理;

6.inMutable:

*如果設(shè)置為true,將返回一個mutable的bitmap,可用于修改BitmapFactory加載而來的bitmap.

7.inScale:

*是否需要放縮位圖

BitmapFactory.options的實際應(yīng)用:

    String pathName = "/storage/emulated/0/test1.jpg";
    //width: 263,ImageView實際比較小
    int width = mIv.getWidth();

    int height = mIv.getHeight();

    Log.d(TAG, "imageView width: "+width);
    //不采樣時圖片的大小:9216000
    Bitmap bitmap = BitmapFactory.decodeFile(pathName);
    Log.d(TAG, "不二次采樣bitmap大小: "+bitmap.getAllocationByteCount());
    BitmapFactory.Options options = new BitmapFactory.Options();
    //設(shè)置為true,加載圖片時不會獲取到bitmap對象,但是可以拿到圖片的寬高
    options.inJustDecodeBounds = true;
    BitmapFactory.decodeFile(pathName,options);
   //計算采樣率,對圖片進行相應(yīng)的縮放
    int outWidth = options.outWidth;
    int outHeight = options.outHeight;
    Log.d(TAG, "outWidth: "+outWidth+",outHeight:"+outHeight);
    float widthRatio = outWidth*1.0f/width;
    float heightRatio = outHeight*1.0f/height;
    Log.d(TAG, "widthRatio: "+widthRatio+",heightRatio:"+heightRatio);
    float max = Math.max(widthRatio, heightRatio);
    //向上舍入
    int inSampleSize = (int) Math.ceil(max);
    Log.d(TAG, "inSampleSize: "+inSampleSize);
    //改為false,因為要獲取采樣后的圖片了
    options.inJustDecodeBounds = false;
    options.inSampleSize = inSampleSize;
    Bitmap bitmap1 = BitmapFactory.decodeFile(pathName, options);
    //采樣后圖片大小:144000,是采樣前圖片的inSampleSize*inSampleSize分之一(1/64)
    Log.d(TAG, "二次采樣bitmap大小: "+bitmap1.getAllocationByteCount());
    mIv.setImageBitmap(bitmap1);
微信圖片_20190319160124.jpg

點個贊再走唄

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末脖捻,一起剝皮案震驚了整個濱河市阔逼,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌地沮,老刑警劉巖嗜浮,帶你破解...
    沈念sama閱讀 211,948評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異诉濒,居然都是意外死亡周伦,警方通過查閱死者的電腦和手機夕春,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,371評論 3 385
  • 文/潘曉璐 我一進店門未荒,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人及志,你說我怎么就攤上這事片排。” “怎么了速侈?”我有些...
    開封第一講書人閱讀 157,490評論 0 348
  • 文/不壞的土叔 我叫張陵率寡,是天一觀的道長。 經(jīng)常有香客問我倚搬,道長冶共,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,521評論 1 284
  • 正文 為了忘掉前任每界,我火速辦了婚禮捅僵,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘眨层。我一直安慰自己庙楚,他們只是感情好,可當我...
    茶點故事閱讀 65,627評論 6 386
  • 文/花漫 我一把揭開白布趴樱。 她就那樣靜靜地躺著馒闷,像睡著了一般。 火紅的嫁衣襯著肌膚如雪叁征。 梳的紋絲不亂的頭發(fā)上纳账,一...
    開封第一講書人閱讀 49,842評論 1 290
  • 那天,我揣著相機與錄音捺疼,去河邊找鬼塞祈。 笑死,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的议薪。 我是一名探鬼主播尤蛮,決...
    沈念sama閱讀 38,997評論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼斯议!你這毒婦竟也來了产捞?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,741評論 0 268
  • 序言:老撾萬榮一對情侶失蹤哼御,失蹤者是張志新(化名)和其女友劉穎坯临,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體恋昼,經(jīng)...
    沈念sama閱讀 44,203評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡看靠,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,534評論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了液肌。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片挟炬。...
    茶點故事閱讀 38,673評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖嗦哆,靈堂內(nèi)的尸體忽然破棺而出谤祖,到底是詐尸還是另有隱情,我是刑警寧澤老速,帶...
    沈念sama閱讀 34,339評論 4 330
  • 正文 年R本政府宣布粥喜,位于F島的核電站,受9級特大地震影響橘券,放射性物質(zhì)發(fā)生泄漏额湘。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,955評論 3 313
  • 文/蒙蒙 一旁舰、第九天 我趴在偏房一處隱蔽的房頂上張望锋华。 院中可真熱鬧,春花似錦鬓梅、人聲如沸供置。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,770評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽芥丧。三九已至,卻和暖如春坊罢,著一層夾襖步出監(jiān)牢的瞬間续担,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,000評論 1 266
  • 我被黑心中介騙來泰國打工活孩, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留物遇,地道東北人。 一個月前我還...
    沈念sama閱讀 46,394評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像询兴,于是被迫代替她去往敵國和親乃沙。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 43,562評論 2 349

推薦閱讀更多精彩內(nèi)容