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);

  • 相关阅读:
    【TIDB】2、TIDB进阶
    【TIDB】1、TiDb简介
    【Tair】淘宝分布式NOSQL框架:Tair
    【ElasticSearch】查询优化
    【高并发解决方案】9、大流量解决方案
    【高并发解决方案】8、Nginx/LVS/HAProxy负载均衡软件的优缺点详解
    【JVM】jdk1.8-jetty-swap被占满问题排查
    【JVM】记录一次线上SWAP偏高告警的故障分析过程
    【JVM】内存和SWAP问题
    【MySQL】mysql索引结构及其原理
  • 原文地址:https://www.cnblogs.com/leehongee/p/3323883.html
Copyright © 2011-2022 走看看