android图片类型之间相互转换实现代码
本文实例讲述了android图片类型之间相互转换实现代码。分享给大家供大家参考。具体如下:
android在处理一写图片资源的时候,会进行一些类型的转换,现在有空整理一下:
1、Drawable→Bitmap
Java代码如下:
publicstaticBitmapdrawableToBitmap(Drawabledrawable){ Bitmapbitmap=Bitmap .createBitmap( drawable.getIntrinsicWidth(), drawable.getIntrinsicHeight(), drawable.getOpacity()!=PixelFormat.OPAQUE?Bitmap.Config.ARGB_8888 :Bitmap.Config.RGB_565); Canvascanvas=newCanvas(bitmap); //canvas.setBitmap(bitmap); drawable.setBounds(0,0,drawable.getIntrinsicWidth(),drawable.getIntrinsicHeight()); drawable.draw(canvas); returnbitmap; } publicstaticBitmapdrawableToBitmap(Drawabledrawable){ Bitmapbitmap=Bitmap .createBitmap( drawable.getIntrinsicWidth(), drawable.getIntrinsicHeight(), drawable.getOpacity()!=PixelFormat.OPAQUE?Bitmap.Config.ARGB_8888 :Bitmap.Config.RGB_565); Canvascanvas=newCanvas(bitmap); //canvas.setBitmap(bitmap); drawable.setBounds(0,0,drawable.getIntrinsicWidth(),drawable.getIntrinsicHeight()); drawable.draw(canvas); returnbitmap; }
2、从资源中获取Bitmap
Java代码如下:
Resourcesres=getResources(); Bitmapbmp=BitmapFactory.decodeResource(res,R.drawable.pic); Resourcesres=getResources(); Bitmapbmp=BitmapFactory.decodeResource(res,R.drawable.pic);
3、Bitmap→byte[]
Java代码如下:
privatebyte[]Bitmap2Bytes(Bitmapbm){ ByteArrayOutputStreambaos=newByteArrayOutputStream(); bm.compress(Bitmap.CompressFormat.PNG,100,baos); returnbaos.toByteArray(); } privatebyte[]Bitmap2Bytes(Bitmapbm){ ByteArrayOutputStreambaos=newByteArrayOutputStream(); bm.compress(Bitmap.CompressFormat.PNG,100,baos); returnbaos.toByteArray(); }
4、byte[]→Bitmap
Java代码如下:
privateBitmapBytes2Bimap(byte[]b){ if(b.length!=0){ returnBitmapFactory.decodeByteArray(b,0,b.length); } else{ returnnull; } } privateBitmapBytes2Bimap(byte[]b){ if(b.length!=0){ returnBitmapFactory.decodeByteArray(b,0,b.length); } else{ returnnull; } }
以上是我在实践中遇到的一些转换,以后遇到类似的就不用到处找了。
希望本文所述对大家的Android程序设计有所帮助。