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;

                        }

              }

  • 相关阅读:
    如何利用JMeter模拟超过 5 万的并发用户
    JQUERY插件JqueryAjaxFileUplaoder----更简单的异步文件上传
    jmeter内存溢出处理方式记录
    JMeter压力测试入门教程[图文]
    本机Tomcat启动myeclipse,用Jmeter录制脚本端口冲突解决办法
    Jmeter 录制脚本
    Jmeter基础之---jmeter基础概念
    Jmeter性能测试 入门
    SSH Secure Shell Client安装和使用
    面向对象2
  • 原文地址:https://www.cnblogs.com/hualuoshuijia/p/6971198.html
Copyright © 2011-2022 走看看