欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

android图片类型之间相互转换实现代码

程序员文章站 2023-12-04 20:38:34
本文实例讲述了android图片类型之间相互转换实现代码。分享给大家供大家参考。具体如下: android在处理一写图片资源的时候,会进行一些类型的转换,现在有空整理一下...

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

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

1、drawable → bitmap

java代码如下:

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代码如下:

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代码如下:

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代码如下:

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