2012-08-03

Bitmap、Drawable、byte的轉換

當寫到圖片的處理時,比較常會遇到的是這三種圖片型態的轉換

所以就來介紹一下這三種資料型態該怎麼轉換。


Bitmap 轉 Drawable
Drawable drawable = new BitmapDrawable(Bitmap);




Drawable 轉 Bitmap
Drawable oDrawable = xxx; //xxx根據自己的情況獲取drawable
BitmapDrawable BD = (BitmapDrawable) oDrawable;
Bitmap BM = BD.getBitmap();




實體路徑圖片檔 轉 Drawable
//這句一定要在onCreate()里面調用
File tempFile = = new File("/sdcard/a.jpg");

Drawable drawable = Drawable.createFromPath(tempFile.getAbsolutePath());




從res\drawable中取出內存圖片為Bitmap
Resources res=getResources();

Bitmap bmp=BitmapFactory.decodeResource(res, R.drawable.ic_launcher); 
 



imageView 轉 Bitmap
  //圖片
  ImageView imageView_save = (ImageView) findViewById(R.id.img_newphoto);

  //imageView轉Bitmap
  imageView_save.buildDrawingCache();
  Bitmap bmp=imageView_save.getDrawingCache();




bitmap 轉 byte
  Bitmap newbm;

  // 把 bitmap 轉成 byte
  ByteArrayOutputStream stream = new ByteArrayOutputStream();
  newbm.compress(Bitmap.CompressFormat.JPEG, 100, stream );
  byte bytes[] = stream.toByteArray();



後記:

這是我常用到的轉換,還蠻實用的,所以PO出來給需要的人參考,謝謝。

沒有留言:

張貼留言

您的寶貴建議是我前進的動力!