2019-02-23
阅读量:
755
Android中常用的图片压缩方式
1. 格式变化
现在android支持的图片格式有三种:png、jpeg、webp;
- png: 无损图片的压缩类型,能保存透明等图,它同时提供 24位和48位真彩色图像支持以及其他诸多技术性支持。
- Jpeg:有损图片的压缩类型,有损压缩方式去除冗余的图像和彩色数据,获取得极高的压缩率的同时能展现十分丰富生动的图像,换句话说,就是可以用最少的磁盘空间得到较好的图像质量。但是,bitmap quality属性越小,图片的清晰度越差。
- WebP:WebP(发音 weppy,项目主页),是谷歌推出的一种支持有损压缩和无损压缩的图片文件格式,派生自图像编码格式 VP8。
2. 质量压缩
设置bitmap quality属性,降低图片的质量,像素不会减少(就是指bitmap所占的内存大小),第一个参数为需要压缩的bitmap图片对象,第二个参数为压缩后图片保存的位置设置quality属性0-100,来实现压缩。(因为png是无损压缩,所以该属性对png是无效的。)
/**
* 质量压缩
*
* @param format 图片格式 PNG,JPEG,WEBP
* @param quality 图片的质量 1-100
*/
public void compress(Bitmap.CompressFormat format, int quality) {
FileOutputStream fos = null;
try {
//得到一个储存路径
File file = new File(Environment.getExternalStorageDirectory(), "test.jpg");
//得到一个文件输入流
fos = new FileOutputStream(file);
//开始压缩
Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.default_icon);
bitmap.compress(format, quality, fos);
} catch (FileNotFoundException e) {
e.printStackTrace();
} finally {
if (fos != null) {
try {
fos.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}






评论(0)


暂无数据