Bitmap與Drawable,byte[]之間的轉化

來源:互聯網
上載者:User

android在處理一寫圖片資源的時候,會進行一些類型的轉換,現在有空整理一下,以便於以後隨時可用

1、drawable---->bitmap

View Code

 1 public static Bitmap drawableToBitmap(Drawable drawable) {              2        Bitmap bitmap = Bitmap    3                        .createBitmap(    4                                       drawable.getIntrinsicWidth(),    5                                        drawable.getIntrinsicHeight(),    6                                       drawable.getOpacity() != PixelFormat.OPAQUE ? Bitmap.Config.ARGB_8888    7                                                       : Bitmap.Config.RGB_565);           Canvas canvas = new Canvas(bitmap);    8        //canvas.setBitmap(bitmap);    9        drawable.setBounds(0, 0, drawable.getIntrinsicWidth(), drawable.getIntrinsicHeight());   10         drawable.draw(canvas);   11        return bitmap;   12 }  

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     * @return 5     */  6     public static Drawable bitmap2Drawable(Bitmap bitmap){  7         return new BitmapDrawable(bitmap) ;  8     }  

4、bitmap---->byte[]

View Code

1 private byte[] Bitmap2Bytes(Bitmap bm){   2     ByteArrayOutputStream baos = new ByteArrayOutputStream();     3     bm.compress(Bitmap.CompressFormat.PNG, 100, baos);     4     return baos.toByteArray();   5    }  

5、byte[]---->bitmap

View Code

1 private Bitmap Bytes2Bimap(byte[] b){   2             if(b.length!=0){   3                 return BitmapFactory.decodeByteArray(b, 0, b.length);   4             }   5             else {   6                 return null;   7             }   8      }  

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.