本文主要讲述了Android图片不同类型之间的相互转换,例如Drawable和Bitmap、 Bitmap和byte[]等之间互转,现在把实现思路和代码整理出来分享给Android程序员兄弟们,希望给他们的开发工作带来帮助。
本文实例讲述了android图片类型之间相互转换实现代码。分享给大家供大家参考。具体如下:
android在处理一写图片资源的时候,会进行一些类型的转换,现在有空整理一下:
1、Drawable → Bitmap
Java代码如下:
1 | <span style= "font-size: medium;" > public static Bitmap drawableToBitmap(Drawable drawable) { |
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); |
10 | drawable.setBounds( 0 , 0 , drawable.getIntrinsicWidth(), drawable.getIntrinsicHeight()); |
11 | drawable.draw(canvas); |
14 | public static Bitmap drawableToBitmap(Drawable drawable) { |
15 | Bitmap bitmap = Bitmap |
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); |
23 | drawable.setBounds( 0 , 0 , drawable.getIntrinsicWidth(), drawable.getIntrinsicHeight()); |
24 | drawable.draw(canvas); |
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(); |
6 | private byte [] Bitmap2Bytes(Bitmap bm){ |
7 | ByteArrayOutputStream baos = new ByteArrayOutputStream(); |
8 | bm.compress(Bitmap.CompressFormat.PNG, 100 , baos); |
9 | return baos.toByteArray(); |
4、 byte[] → Bitmap
Java代码如下:
1 | <span style= "font-size: medium;" > private Bitmap Bytes2Bimap( byte [] b){ |
3 | return BitmapFactory.decodeByteArray(b, 0 , b.length); |
9 | private Bitmap Bytes2Bimap( byte [] b){ |
11 | return BitmapFactory.decodeByteArray(b, 0 , b.length); |
以上是我在实践中遇到的一些转换,以后遇到类似的就不用到处找了。
本文到此结束,需要的朋友可以参考下。