Android开发——图片类型之间相互转换

本文主要讲述了Android图片不同类型之间的相互转换,例如Drawable和Bitmap、 Bitmap和byte[]等之间互转,现在把实现思路和代码整理出来分享给Android程序员兄弟们,希望给他们的开发工作带来帮助。

本文实例讲述了android图片类型之间相互转换实现代码。分享给大家供大家参考。具体如下:

android在处理一写图片资源的时候,会进行一些类型的转换,现在有空整理一下:

1、Drawable → Bitmap

Java代码如下:

1 <span style="font-size: medium;">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);
8  Canvas canvas = new Canvas(bitmap);
9  //canvas.setBitmap(bitmap);
10  drawable.setBounds(00, drawable.getIntrinsicWidth(), drawable.getIntrinsicHeight());
11  drawable.draw(canvas);
12  return bitmap;
13 }
14 public static Bitmap drawableToBitmap(Drawable drawable) {
15  Bitmap bitmap = Bitmap
16    .createBitmap(
17      drawable.getIntrinsicWidth(),
18      drawable.getIntrinsicHeight(),
19      drawable.getOpacity() != PixelFormat.OPAQUE ? Bitmap.Config.ARGB_8888
20        : Bitmap.Config.RGB_565);
21  Canvas canvas = new Canvas(bitmap);
22  //canvas.setBitmap(bitmap);
23  drawable.setBounds(00, drawable.getIntrinsicWidth(), drawable.getIntrinsicHeight());
24  drawable.draw(canvas);
25  return bitmap;
26 }</span>

2、从资源中获取Bitmap

Java代码如下:

1 <span style="font-size: medium;">Resources res=getResources();
2 Bitmap bmp=BitmapFactory.decodeResource(res, R.drawable.pic);
3 Resources res=getResources();
4 Bitmap bmp=BitmapFactory.decodeResource(res, R.drawable.pic);</span>

3、Bitmap → byte[]

Java代码如下:

1 <span style="font-size: medium;">private byte[] Bitmap2Bytes(Bitmap bm){
2  ByteArrayOutputStream baos = new ByteArrayOutputStream();
3  bm.compress(Bitmap.CompressFormat.PNG, 100, baos);
4  return baos.toByteArray();
5 }
6 private byte[] Bitmap2Bytes(Bitmap bm){
7  ByteArrayOutputStream baos = new ByteArrayOutputStream();
8  bm.compress(Bitmap.CompressFormat.PNG, 100, baos);
9  return baos.toByteArray();
10 }</span>

4、 byte[] → Bitmap

Java代码如下:

1 <span style="font-size: medium;">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 }
9 private Bitmap Bytes2Bimap(byte[] b){
10   if(b.length!=0){
11   return BitmapFactory.decodeByteArray(b, 0, b.length);
12   }
13   else {
14   return null;
15   }
16 }</span>

以上是我在实践中遇到的一些转换,以后遇到类似的就不用到处找了。

本文到此结束,需要的朋友可以参考下。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值