直播app开发搭建,Android studio 图片压缩

发布时间 2023-09-27 14:11:20作者: 云豹科技-苏凌霄

直播app开发搭建,Android studio 图片压缩

获取图片目录

 

File file=Environment.getExternalStorageDirectory();//获取根路径 storage/emulated/0
String path1=file.getPath()+"/Pictures/1655215651628.jpg";//Pictures文件夹下面的 1655215651628.jpg图片名
 


     //path 压缩图片的路径
        String path="/storage/emulated/0/Pictures/1655215651628.jpg";
        Bitmap bitmap = obtainImageFromPath(path, 100, 160);
        saveBitmapFile(bitmap);//把压缩图片储存
        image.setImageBitmap(bitmap);
 //传入路径和宽高
    public static Bitmap obtainImageFromPath(String path, int width, int height) {
        BitmapFactory.Options o = new BitmapFactory.Options();
        o.inJustDecodeBounds = true;
        BitmapFactory.decodeFile(path, o);
        o.inSampleSize = calculateSampleSize(o, width, height);
        o.inJustDecodeBounds = false;
        return BitmapFactory.decodeFile(path, o);
    }
    //计算样本量
    private static int calculateSampleSize(BitmapFactory.Options o, int reqWidth, int reqHeight) {
        int sampleSize = 1;
        if (o.outWidth > reqWidth || o.outHeight > reqHeight) {
            final int halfWidth = o.outWidth / 2;
            final int halfHeight = o.outHeight / 2;
            while ((halfHeight / sampleSize) >= reqHeight
                    && (halfWidth / sampleSize) >= reqWidth) {
                sampleSize *= 2;
            }
        }
        return sampleSize;
    }
//保存压缩的文件
    public void saveBitmapFile(Bitmap bitmap){
        File file=new File("/storage/emulated/0/Pictures/1655215651628.jpg");//将要保存图片的路径,图片的大小已经改变
        try {
            BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(file));
            bitmap.compress(Bitmap.CompressFormat.JPEG, 100, bos);
            bos.flush();
            bos.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

 以上就是 直播app开发搭建,Android studio 图片压缩,更多内容欢迎关注之后的文章