Android 中可以使用以下两种方法来压缩大图:

  1. BitmapFactory.Options.inSampleSize

通过设置 BitmapFactory.Options 的 inSampleSize 属性,可以让 BitmapFactory 在解码图片时只解码出原图的一部分,从而达到压缩的效果。inSampleSize 的值必须是2的幂次方,比如设置为2表示图片宽高都压缩为原来的一半,设置为4则是压缩为原来的四分之一。

示例代码:

BitmapFactory.Options options = new BitmapFactory.Options();
options.inJustDecodeBounds = false;
options.inSampleSize = 2; // 设置压缩比例为原图的1/2
Bitmap bitmap = BitmapFactory.decodeFile(path, options);
  1. Bitmap.compress()

当获取到 Bitmap 对象后,可以使用 Bitmap.compress() 方法将图片压缩为指定的格式和质量。其中,格式可以是 JPEG、PNG 或者 WEBP;质量值在 0~100 之间,值越小表示压缩比越高,图片质量越差。

示例代码:

Bitmap bitmap = BitmapFactory.decodeFile(path);
ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
bitmap.compress(Bitmap.CompressFormat.JPEG, 50, outputStream); // 压缩为 JPEG 格式,质量为 50
byte[] compressedData = outputStream.toByteArray();
``
Android 如何去压缩大图

原文地址: https://www.cveoy.top/t/topic/eDQ4 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录