本文实例讲述了android图片类型之间相互转换实现代码。分享给大家供大家参考。具体如下:
android在处理一写图片资源的时候,会进行一些类型的转换,现在有空整理一下:
1、Drawable → Bitmap
Java代码如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
public static Bitmap drawableToBitmap(Drawable drawable) { Bitmap bitmap = Bitmap .createBitmap( drawable.getIntrinsicWidth(), drawable.getIntrinsicHeight(), drawable.getOpacity() != PixelFormat.OPAQUE ? Bitmap.Config.ARGB_8888 : Bitmap.Config.RGB_565); Canvas canvas = new Canvas(bitmap); //canvas.setBitmap(bitmap); drawable.setBounds( 0 , 0 , drawable.getIntrinsicWidth(), drawable.getIntrinsicHeight()); drawable.draw(canvas); return bitmap; } public static Bitmap drawableToBitmap(Drawable drawable) { Bitmap bitmap = Bitmap .createBitmap( drawable.getIntrinsicWidth(), drawable.getIntrinsicHeight(), drawable.getOpacity() != PixelFormat.OPAQUE ? Bitmap.Config.ARGB_8888 : Bitmap.Config.RGB_565); Canvas canvas = new Canvas(bitmap); //canvas.setBitmap(bitmap); drawable.setBounds( 0 , 0 , drawable.getIntrinsicWidth(), drawable.getIntrinsicHeight()); drawable.draw(canvas); return bitmap; } |
2、从资源中获取Bitmap
Java代码如下:
1
2
3
4
|
Resources res=getResources(); Bitmap bmp=BitmapFactory.decodeResource(res, R.drawable.pic); Resources res=getResources(); Bitmap bmp=BitmapFactory.decodeResource(res, R.drawable.pic); |
3、Bitmap → byte[]
Java代码如下:
1
2
3
4
5
6
7
8
9
10
|
private byte [] Bitmap2Bytes(Bitmap bm){ ByteArrayOutputStream baos = new ByteArrayOutputStream(); bm.compress(Bitmap.CompressFormat.PNG, 100 , baos); return baos.toByteArray(); } private byte [] Bitmap2Bytes(Bitmap bm){ ByteArrayOutputStream baos = new ByteArrayOutputStream(); bm.compress(Bitmap.CompressFormat.PNG, 100 , baos); return baos.toByteArray(); } |
4、 byte[] → Bitmap
Java代码如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
private Bitmap Bytes2Bimap( byte [] b){ if (b.length!= 0 ){ return BitmapFactory.decodeByteArray(b, 0 , b.length); } else { return null ; } } private Bitmap Bytes2Bimap( byte [] b){ if (b.length!= 0 ){ return BitmapFactory.decodeByteArray(b, 0 , b.length); } else { return null ; } } |
以上是我在实践中遇到的一些转换,以后遇到类似的就不用到处找了。
希望本文所述对大家的Android程序设计有所帮助。