在保持质量的同时缩小图像尺寸

时间:2014-05-14 05:59:00

标签: android bitmap android-image android-bitmap

我只是想知道我可以处理的不同因素,并通过保持其质量来减小任何图像的大小。

像Bitmap.compress一样,对我来说是唯一的选择。

这也是最好的编码格式(Jpeg,Png),它以最小的尺寸保持质量。

3 个答案:

答案 0 :(得分:0)

取决于位图内容。如果您的位图上有文字或其他纯色或对比区域,那么PNG是您的选择,因为它可以保持图像质量。

如果它是来自相机的照片,那么JPG是最好的。

答案 1 :(得分:0)

// try this way,hope this will help you...

private Bitmap decodeFileFromPath(String path){
        Uri uri = getImageUri(path);
        InputStream in = null;
        try {
            in = getContentResolver().openInputStream(uri);

            //Decode image size
            BitmapFactory.Options o = new BitmapFactory.Options();
            o.inJustDecodeBounds = true;

            BitmapFactory.decodeStream(in, null, o);
            in.close();


            int scale = 1;
            int inSampleSize = 1024;
            if (o.outHeight > inSampleSize || o.outWidth > inSampleSize) {
                scale = (int) Math.pow(2, (int) Math.round(Math.log(inSampleSize / (double) Math.max(o.outHeight, o.outWidth)) / Math.log(0.5)));
            }

            BitmapFactory.Options o2 = new BitmapFactory.Options();
            o2.inSampleSize = scale;
            in = getContentResolver().openInputStream(uri);
            Bitmap b = BitmapFactory.decodeStream(in, null, o2);
            in.close();

            return b;

        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
        return null;
    }

答案 2 :(得分:0)

任何lossless文件格式都不会弄乱您的字节:

  • PNG(默认配置=无损)
  • Tiff无损(拉链或lzw)
  • JPEG无损(一种特殊类型的JPEG。我认为Android不支持开箱即用)