android图片类型之间的互转

    xiaoxiao2021-12-14  19

    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(00, drawable.getIntrinsicWidth(), drawable.getIntrinsicHeight());           drawable.draw(canvas);           return bitmap;   }   [java] view plain copy print ? 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(00, 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);   [java] view plain copy print ? 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();      }   [java] view plain copy print ? 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;               }         }   [java] view plain copy print ? 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; } }

     

     

     

    以上是我在实践中遇到的一些转换,以后遇到类似的就不用到处找了,希望对大家也有一点用处!

    转载请注明原文地址: https://ju.6miu.com/read-963559.html

    最新回复(0)