Android 如何去压缩大图
Android 中可以使用以下两种方法来压缩大图:
- 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);
- 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();
``
原文地址: https://www.cveoy.top/t/topic/eDQ4 著作权归作者所有。请勿转载和采集!