Bitmap與Byte Drawable之間的轉換

2022-09-18 11:27:20 字數 2069 閱讀 5343

1)bitmap 轉化為 byte

bytearrayoutputstream out = new bytearrayoutputstream();

bitmap.compress(bitmap.compressformat.png, 100, out);

byte array= out.tobytearray();

2)byte轉化為bitmap

final contentresolver contentresolver = context.getcontentresolver();

final packagemanager manager = context.getpackagemanager();

final cursor c = contentresolver.query(uri, null, null, null, null);

final int icon3dindex = c.getcolumnindexorthrow(columnname);

byte data = c.getblob(icon3dindex);

bitmap bitmap = bitmapfactory.decodebytearray(data, 0, data.length);

3)bitmap 轉換 drawable

bitmap bitmap = new bitmap(...);

drawable drawable = new bitmapdrawable(bitmap);

//drawable drawable = new fastbitmapdrawable(bitmap);

4)drawable to bitmap

a. bitmapdrawable, fastbitmapdrawable直接用getbitmap

b. 其他型別的drawable用canvas畫到乙個bitmap上

canvas canvas = new canvas(bitmap) drawable.draw(canvas);

drawable d = imageslist.get(0);

bitmap bitmap =  ((bitmapdrawable)d).getbitmap();

1、drawable---->bitmap

view code

1

public

static

bitmap drawabletobitmap(drawable drawable)

2、從資源中獲取bitmap:drawable---->bitmap

view code

1 resources res=getresources();     

2 bitmap bmp=bitmapfactory.decoderesource(res, r.drawable.pic); 3//

或者這種方法也行,這兩種方法都一樣

4 bitmap bmp = ((bitmapdrawable)this.getresources.getdrawable(r.drawable.pic)).getbitmap();

3、bitmap---->drawable

view code

1

/**2

* bitmap轉化為drawable 3*

@param

bitmap 4*

@return5*/

6public

static

drawable bitmap2drawable(bitmap bitmap)

4、bitmap---->byte

view code

1

private

byte

bitmap2bytes(bitmap bm)

5、byte---->bitmap

view code

1

private bitmap bytes2bimap(byte

b)

5else

8 }

bitmap與2 bitmap使用總結

bitmap是一種簡單的資料結構,但在儲存空間壓縮方面卻使用廣泛。bitmap就是用乙個bit位來標記某個元素是否存在 1表示存在,0表示不存在 而2 bitmap就是用兩個bit為來標記某個元素出現的次數 00出現0次,01出現1次,10出現2次及其以上,11無意義。2 bitmap在記憶體中的表...

Bitmap與Options微技巧

今天在測試的時候發現乙個異常,bitmap縮放的尺寸沒有達到預期的效果,於是我對options物件輸出日誌發現,這個尺寸是正常的,log.e tag w options.outwidth h options.outheight 09 06 08 41 25.536 e tag 18964 w 200...

Bitmap的載入與快取

android系統中一般用bitmap物件表示,它支援png,jpg等常見格式。通常情況下的體積都比較大,單個應用允許使用的記憶體又是有限的,所以我們需要採取一些手段減少記憶體占用並提高載入速度。假設我們用imageview顯示,通常它的尺寸要比的尺寸小很多,那麼把整個載入進記憶體顯然是沒有必要的。...