Android把uri图片转为bitmap

Android把uri图片转为bitmap,第1张

概述直接粘贴就能用privateBitmapImageSizeCompress(Uriuri){InputStreamStream=null;InputStreaminputStream=null;try{//根据uri获取图片的流inputStream=getContentResolver().openInputStream(uri);

直接粘贴就能用

  private Bitmap ImageSizeCompress(Uri uri){        inputStream Stream = null;        inputStream inputStream = null;        try {            //根据uri获取图片的流            inputStream = getContentResolver().openinputStream(uri);            BitmapFactory.Options options = new BitmapFactory.Options();            //options的in系列的设置了,injustdecodebouond只解析图片的大小,而不加载到内存中去            options.inJustDecodeBounds = true;            //1.如果通过options.outHeight获取图片的宽高,就必须通过decodestream解析同options赋值            //否则options.outheight获取不到宽高            BitmapFactory.decodeStream(inputStream,null,options);            //2.通过 btm.getHeight()获取图片的宽高就不需要1的解析,我这里采取第一张方式//            Bitmap btm = BitmapFactory.decodeStream(inputStream);            //以屏幕的宽高进行压缩            displayMetrics displayMetrics = getResources().getdisplayMetrics();            int heightPixels = displayMetrics.heightPixels;            int wIDthPixels = displayMetrics.wIDthPixels;            //获取图片的宽高            int outHeight = options.outHeight;            int outWIDth = options.outWIDth;            //heightPixels就是要压缩后的图片高度,宽度也一样            int a = (int) Math.ceil((outHeight/(float)heightPixels));            int b = (int) Math.ceil(outWIDth/(float)wIDthPixels);            //比例计算,一般是图片比较大的情况下进行压缩            int max = Math.max(a, b);            if(max > 1){                options.inSampleSize = max;            }            //解析到内存中去            options.inJustDecodeBounds = false;//            根据uri重新获取流,inputstream在解析中发生改变了            Stream = getContentResolver().openinputStream(uri);            Bitmap bitmap = BitmapFactory.decodeStream(Stream, null, options);            return bitmap;        } catch (Exception e) {            e.printstacktrace();        }finally {            try {                if(inputStream != null) {                    inputStream.close();                }                if(Stream != null){                    Stream.close();                }            } catch (IOException e) {                e.printstacktrace();            }        }        return  null;    }

引用

  Bitmap bitmap = ImageSizeCompress(uri);
总结

以上是内存溢出为你收集整理的Android把uri图片转为bitmap全部内容,希望文章能够帮你解决Android把uri图片转为bitmap所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1036870.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-24
下一篇 2022-05-24

发表评论

登录后才能评论

评论列表(0条)

保存