Android-获取Bitmap对象的API效果差异对比
来源:互联网 发布:人工智能要学单片机吗 编辑:程序博客网 时间:2024/05/18 00:16
在Android中读取已知图像,获取Bitmap对象的方法主要有以下几种:
1,BitmapFactory.decodeResource();
2,BitmapFactory.decodeStream();
3,BitmapFactory.decodeFile();
对于这三个接口方法,我们也许很少去研究它们生成的Bitmap对象究竟跟原图又多大差异,这里对这个问题做个总结。
我对同一张照片两种格式分别作个测试:1.png/1.jpg
测试内容:
对1.png分别调用三个接口生成三个Bitmap对象a1,b1,c1,读取RGB值(ag1,bg1,cg1),跟原图1.png的RGB值计算累计差值Sa1,Sb1,Sc1;
对1.jpg分别调用三个接口生成三个Bitmap对象a2,b2,c2,读取RGB值(ag2,bg2,cg2),跟原图1.jpg的RGB值计算累计差值Sa2,Sb2,Sc2;
结果如下:
Sa1 = Sa2 = Sa3 = 0;
Sa2>Sc2>Sb2>T,(T>10);
上述测试对于不同图像依旧如此,这个结果说明一个问题:三个接口所生成的Bitmap对象,在jpg格式下都出现了一定的误差,在png情况下这个误差达到最小值。
也许你觉得这个误差不会影响使用,那是你使用的场合不要求精度,对于精确的 图像算法而言,这个误差足以影响一个算法的成败。
最后,说一下第三个接口,对于第三个接口,它有一个形式:BitmapFactory.decodeFile(String filename,Options op);
这个Option op参数中有个inPreferQualityOverSpeed的设置,如果你设置了这个属性,那么在jpg情况下,你的图像损失就会达到最小,几乎和png保持一致了,具体设置如下:
Options op = new Options();op.inPreferQualityOverSpeed = true;Bitmap temp = BitmapFactory.decodeFile(filename, op);总结:对于专业做图像处理的朋友们,这一点也许对你很有帮助哦!
- Android-获取Bitmap对象的API效果差异对比
- Android Bitmap 全面解析(四)图片处理效果对比
- Android Bitmap 全面解析(四)图片处理效果对比 ...
- Android Bitmap 全面解析(四)图片处理效果对比 ...
- Android 通过Uri获取Bitmap对象
- android--code--从路径获取bitmap对象
- Android 通过Uri获取Bitmap对象
- Android 获取view的 bitmap
- Android获取Bitmap的大小
- Android各个版本API的差异
- Bitmap对象的几种获取方法
- [对比]Android的差异设计和iOS的统一设计规范
- ImageLoader获取bitmap对象
- android——获取ImageView上面显示的图片bitmap对象
- android 利用canvas 获取裁切或者合并后的bitmap对象
- android的drawable 和bitmap的效率对比测试
- Android 不同版本下Bitmap创建差异
- Androlid中不同API获取Bitmap的大小
- github开发
- spring源码理解-BeanFactory子类XmlBeanFactory的创建过程
- github上好的开源项目(一)
- [MFC]选择目录对话框和选择文件对话框
- 设置glblendfunc出现黑框
- Android-获取Bitmap对象的API效果差异对比
- LeetCode_52---N-Queens II
- 支持取消操作和暂停操作的Backgroundworker
- Java反射(一)Class类对象
- 虚拟机里的Linux系统界面太小,怎么让它变大?
- add customized javascript and globalization
- 捕鱼千炮房时炮大小为1000,重新进入百炮房炮大小为1000
- 宏定义 与一些 方法
- 搭建linux开发环境-linux访问windows共享文件夹