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程序设计有所帮助。