zoukankan      html  css  js  c++  java
  • Android图片二进制与Bitmap、Drawable之间的转换

    Android图片二进制与Bitmap、Drawable之间的转换

    Java代码  
    public byte[] getBitmapByte(Bitmap bitmap){  
       ByteArrayOutputStream out = new ByteArrayOutputStream();  
       bitmap.compress(Bitmap.CompressFormat.JPEG, 100, out);  
       try {  
           out.flush();  
           out.close();  
       } catch (IOException e) {  
           e.printStackTrace();  
       }  
       return out.toByteArray();  
    }  


    public Bitmap getBitmapFromByte(byte[] temp){  
       if(temp != null){  
           Bitmap bitmap = BitmapFactory.decodeByteArray(temp, 0, temp.length);  
           return bitmap;  
       }else{  
           return null;  
       }  
    }  

    public byte[] getBitmapByte(Bitmap bitmap){
    ByteArrayOutputStream out = new ByteArrayOutputStream();
    bitmap.compress(Bitmap.CompressFormat.JPEG, 100, out);
    try {
    out.flush();
    out.close();
    } catch (IOException e) {
    e.printStackTrace();
    }
    return out.toByteArray();
    }

    public Bitmap getBitmapFromByte(byte[] temp){
    if(temp != null){
    Bitmap bitmap = BitmapFactory.decodeByteArray(temp, 0, temp.length);
    return bitmap;
    }else{
    return null;
    }
    }

    Java代码  
    public static Bitmap drawableToBitmap(Drawable drawable){    
               int width = drawable.getIntrinsicWidth();    
               int height = drawable.getIntrinsicHeight();    
               Bitmap bitmap = Bitmap.createBitmap(width, height,    
                       drawable.getOpacity() != PixelFormat.OPAQUE ? Bitmap.Config.ARGB_8888    
                               : Bitmap.Config.RGB_565);    
               Canvas canvas = new Canvas(bitmap);    
               drawable.setBounds(0,0,width,height);    
               drawable.draw(canvas);    
               return bitmap;    
           }    

    public static Bitmap drawableToBitmap(Drawable drawable){  
               int width = drawable.getIntrinsicWidth();  
               int height = drawable.getIntrinsicHeight();  
               Bitmap bitmap = Bitmap.createBitmap(width, height,  
                       drawable.getOpacity() != PixelFormat.OPAQUE ? Bitmap.Config.ARGB_8888  
                               : Bitmap.Config.RGB_565);  
               Canvas canvas = new Canvas(bitmap);  
               drawable.setBounds(0,0,width,height);  
               drawable.draw(canvas);  
               return bitmap;  
           }  

    Java代码  
    Drawable drawable = new FastBitmapDrawable(bitmap);

  • 相关阅读:
    [计算机网络-传输层] 无连接传输:UDP
    [BinaryTree] 最大堆的类实现
    [OS] 生产者-消费者问题(有限缓冲问题)
    [剑指Offer] 64.滑动窗口的最大值
    [剑指Offer] 63.数据流中的中位数
    [剑指Offer] 62.二叉搜索树的第k个结点
    [OS] CPU调度
    [剑指Offer] 60.把二叉树打印成多行
    MySQL数据库实验二:单表查询
    数据库实验:基本表的定义与修改
  • 原文地址:https://www.cnblogs.com/leehongee/p/3323883.html
Copyright © 2011-2022 走看看