Android图片质量压缩和尺寸压缩
时间: 2023-09-08 22:17:30 浏览: 173
Android图片质量压缩
Android中常用的图片压缩方式有两种:质量压缩和尺寸压缩。
1. 质量压缩
质量压缩是指在不改变图片大小的前提下减小图片的存储空间,即减小图片的文件大小。这种压缩方式不会改变图片的分辨率,也不会影响图片的清晰度,但是会导致一定程度的失真。在Android中,可以使用Bitmap类的compress方法进行质量压缩。
示例代码:
```java
public Bitmap compressImage(Bitmap image) {
ByteArrayOutputStream baos = new ByteArrayOutputStream();
image.compress(Bitmap.CompressFormat.JPEG, 50, baos);
byte[] bytes = baos.toByteArray();
return BitmapFactory.decodeByteArray(bytes, 0, bytes.length);
}
```
其中,第二个参数50表示压缩质量,取值范围是0-100,数字越小,压缩后的图片质量越低。
2. 尺寸压缩
尺寸压缩是指通过改变图片的分辨率来减小图片的存储空间,即减小图片的像素数。这种压缩方式会导致图片的清晰度下降,但是不会导致失真。在Android中,可以使用Bitmap类的createScaledBitmap方法进行尺寸压缩。
示例代码:
```java
public Bitmap compressImage(Bitmap image) {
int width = image.getWidth();
int height = image.getHeight();
Matrix matrix = new Matrix();
matrix.postScale(0.5f, 0.5f); // 将图片缩小一半
Bitmap compressedBitmap = Bitmap.createBitmap(image, 0, 0, width, height, matrix, true);
return compressedBitmap;
}
```
其中,Matrix类表示一个3x3的矩阵,通过postScale方法可以设置图片的缩放比例。最后一个参数true表示保持缩放后的图片与原图的宽高比一致。
阅读全文