zoukankan      html  css  js  c++  java
  • 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;

                        }

              }

  • 相关阅读:
    Sum Root to Leaf Numbers
    Sum Root to Leaf Numbers
    Sort Colors
    Partition List
    Binary Tree Inorder Traversal
    Binary Tree Postorder Traversal
    Remove Duplicates from Sorted List II
    Remove Duplicates from Sorted List
    Search a 2D Matrix
    leetcode221
  • 原文地址:https://www.cnblogs.com/hualuoshuijia/p/6971198.html
Copyright © 2011-2022 走看看