• drawable转mitmap 以及图片base64编码


     static Bitmap drawableToBitmap(Drawable drawable) // drawable 转换成bitmap
        {
            int width = drawable.getIntrinsicWidth();// 取drawable的长宽
            int height = drawable.getIntrinsicHeight();
            Bitmap.Config config = drawable.getOpacity() != PixelFormat.OPAQUE ?Bitmap.Config.ARGB_8888:Bitmap.Config.RGB_565;// 取drawable的颜色格式
            Bitmap bitmap = Bitmap.createBitmap(width, height, config);// 建立对应bitmap
            Canvas canvas = new Canvas(bitmap);// 建立对应bitmap的画布
            drawable.setBounds(0, 0, width, height);
            drawable.draw(canvas);// 把drawable内容画到画布中
            return bitmap;
        }
    

     调用代码,getDrawable过期了,但是还可以用,替换的方法暂未发现

     Bitmap bitmap = drawableToBitmap(this.getResources().getDrawable(R.drawable.ic_launcher));
    

    2.图片转base64

     public String Bitmap2StrByBase64(Bitmap bit){
            ByteArrayOutputStream bos=new ByteArrayOutputStream();
            bit.compress(Bitmap.CompressFormat.JPEG, 40, bos);//参数100表示不压缩
            byte[] bytes=bos.toByteArray();
            return Base64.encodeToString(bytes, Base64.DEFAULT);
        }
    

    1.Drawable—>Bitmap

    Resources res=getResources();

    Bitmap bmp=BitmapFactory.decodeResource(res, R.drawable.sample_0);
    Resources res=getResources();
    private byte[] Bitmap2Bytes(Bitmap bm){

    2.Bitmap---->Drawable

    Drawable drawable =new BitmapDrawable(bmp);

    3、Drawable → 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;

    }

    4、从资源中获取Bitmap

    Bitmap bmp=BitmapFactory.decodeResource(res, R.drawable.pic);

    5、Bitmap → byte[]

        ByteArrayOutputStream baos = new ByteArrayOutputStream();

        bm.compress(Bitmap.CompressFormat.PNG, 100, baos);

        return baos.toByteArray();   }

    6、 byte[] → Bitmap

       private Bitmap Bytes2Bimap(byte[] b){

                        if(b.length!=0){

                                return BitmapFactory.decodeByteArray(b, 0, b.length);

                        }

                        else {

                                return null;

                        }

              }

  • 相关阅读:
    石头汤
    win8激活 DNS名称不存在
    IE系列hack
    CSS缩写
    MSDN资源
    项目管理之软件文档知多少
    jqModal
    Microsoft Security Essentials 不升级方法
    XP没有声音服务解决方案
    office2003安全模式启动,默认模板问题/打开word就显示“无法装载这个对象”
  • 原文地址:https://www.cnblogs.com/hualuoshuijia/p/6971198.html
Copyright © 2020-2023  润新知