图片压缩
来源:互联网 发布:杭州市大数据局 编辑:程序博客网 时间:2024/05/27 14:14
图片压缩简介:
图片的压缩:(分辨率压缩/像素压缩,质量压缩)
分辨率压缩个人理解:
利用 bitmap = BitmapFactory.decodeFile(path, newOpts.inSampleSize像素比率); 得到显示的bitmap,而且还可以进行输出的质量压缩,即利用
bitmap.compress(有损JPEG或无损压缩png,quality,);
质量压缩有两种:
有损压缩:将色相和色纯度相近的色素合并,使图片信息减少,达到降质压缩效果,仅仅通过减少重复达到缩小体积目的(如:JPEG 格式);
无损压缩:将相同的色素只保留一次,是对文件的数据存储方式进行优化,解压后仍能还原以前的像素数的压缩(如:PNG 格式);
也就是说,bitmap.compress()参数采用PNG格式的,就是默认使用的是无损压缩方式,同时透明度效果有效,而若采用JPEG格式的,默认使用的是有损压缩,无透明效果;
额外部分:
打印机使用 DPI 来确定图片的每一个像素和实际的一个长度单位(英寸)之间的大小比例(比如300-72 DPI)。
图片像素密度:单位英寸内像素点的个数;
图片分辨率:屏幕中横纵向像素值的乘机;
图片尺寸越大则像素密度越小,而分辨率其实还是没变的;
代码示例:
实例结果:
D/file1 图片未压缩大小: 31961088
D/file2:图片像素压缩后图片大小: 124848 文件经过图片解析,使得内存占用加大
D/file2:图片像素压缩后文件大小: 40185 图片文件在硬盘中存储大小,该文件大小大于其输出流大小
D/file3:图片质量压缩后图片大小: 124848 质量压缩后只是图片文件存储大小变小,而用于显示的分辨率未变
D/file3:图片质量压缩后文件大小: 23242
注意:保存图片的文件大小一定小于Bitmap大小,因为Bitmap是经过文件解析后显示的数字图片数据,而图片文件的输出流大小也一定会小于文件;
总结:
决定图片显示时占内存大小的决定因素,就是图片的分辨率,所以在图片显示时,可采用分辨率压缩(bitmap = BitmapFactory.decodeFile(path, newOpts.inSampleSize像素比率)),使图片显示时少占用空间;
若减小图片存储占用内存,可采用分辨率压缩和质量压缩(bitmap.compress(有损JPEG或无损压缩png,quality,))相结合方式实现;
图片的压缩:(分辨率压缩/像素压缩,质量压缩)
分辨率压缩个人理解:
利用 bitmap = BitmapFactory.decodeFile(path, newOpts.inSampleSize像素比率); 得到显示的bitmap,而且还可以进行输出的质量压缩,即利用
bitmap.compress(有损JPEG或无损压缩png,quality,);
质量压缩有两种:
有损压缩:将色相和色纯度相近的色素合并,使图片信息减少,达到降质压缩效果,仅仅通过减少重复达到缩小体积目的(如:JPEG 格式);
无损压缩:将相同的色素只保留一次,是对文件的数据存储方式进行优化,解压后仍能还原以前的像素数的压缩(如:PNG 格式);
也就是说,bitmap.compress()参数采用PNG格式的,就是默认使用的是无损压缩方式,同时透明度效果有效,而若采用JPEG格式的,默认使用的是有损压缩,无透明效果;
额外部分:
打印机使用 DPI 来确定图片的每一个像素和实际的一个长度单位(英寸)之间的大小比例(比如300-72 DPI)。
图片像素密度:单位英寸内像素点的个数;
图片分辨率:屏幕中横纵向像素值的乘机;
图片尺寸越大则像素密度越小,而分辨率其实还是没变的;
代码示例:
实例结果:
D/file1 图片未压缩大小: 31961088
D/file2:图片像素压缩后图片大小: 124848 文件经过图片解析,使得内存占用加大
D/file2:图片像素压缩后文件大小: 40185 图片文件在硬盘中存储大小,该文件大小大于其输出流大小
D/file3:图片质量压缩后图片大小: 124848 质量压缩后只是图片文件存储大小变小,而用于显示的分辨率未变
D/file3:图片质量压缩后文件大小: 23242
注意:保存图片的文件大小一定小于Bitmap大小,因为Bitmap是经过文件解析后显示的数字图片数据,而图片文件的输出流大小也一定会小于文件;
总结:
决定图片显示时占内存大小的决定因素,就是图片的分辨率,所以在图片显示时,可采用分辨率压缩(bitmap = BitmapFactory.decodeFile(path, newOpts.inSampleSize像素比率)),使图片显示时少占用空间;
若减小图片存储占用内存,可采用分辨率压缩和质量压缩(bitmap.compress(有损JPEG或无损压缩png,quality,))相结合方式实现;
0 0
- 图片压缩。大小压缩
- 图片压缩按比例压缩
- 压缩图片
- 压缩图片
- 图片压缩
- 图片压缩
- 图片压缩
- 图片压缩
- 压缩图片
- 图片压缩
- 图片压缩
- 图片压缩
- 图片压缩
- 图片压缩
- 图片压缩
- 图片压缩
- 压缩图片
- 图片压缩
- Android 异步消息处理机制 让你深入理解 Looper、Handler、Message三者关系
- solr replication原理探究
- OJ 1997: C语言实验——分割整数
- 百度地图开发(一)
- 谭浩强魔方阵看不明白的同学看这里
- 图片压缩
- JNA方式调用dll动态库
- mongodb更新数据
- ZOJ 2334 可并堆<斜堆>
- 基于 base64_encode的加密算法
- 利用matlab对彩色图像打马赛克
- 2016 年 7 个最佳的 Java 框架
- iOS手势
- android 事件分发机制源码解析