关于android 图像格式问题
来源:互联网 发布:js怎么判断undefined 编辑:程序博客网 时间:2024/06/05 15:33
这算是篇总结吧。6月份开始做的一个android上的ar项目结束了。我做的部分是二维码识别和图像识别的预处理。这个项目虽然很累,但是让我学到了很多东西,特别是严格的编码规则,和java代码的效率优化,以及抗压力能力。
当然这里说的是图片处理时的一些东西。因为在做项目的时候在网上找了很多资料都不完全,甚至很多都会误导别人。所以我觉得有必要总结一下。
首先是android本身支持的图片格式,android本身支持的图片格式只有两种 jpg和png。还有一种格式webp 不能跨平台(这点是听别人说的,我没有验证)。除此以外的格式android都不支持。这里说的支持是指bitmap编码成这两种格式的文件。其他格式的,只要熟悉标准,完全可以自己写。
然后是位图格式,Config.ARGB_8888,ARGB_4444,RGB_565,ALPHA_8,这些都是位图格式。所谓位图,就是bitmap,无压缩的图像格式, ARGB_8888的意思是 每一个像素都由 4个通道来描述,分别是 透明度(alpha),红色(red),绿色(green),蓝色(blue),每一个通道都占8bit,也就是一个字节。剩下的argb_4444,rgb_565 于此类似。
因为位图是无压缩的所以完全可以计算出来文件大小,比如一个 100*100的位图。如果是argb_8888那么他的大小是 4(通道) * 1(8 / 8) * 100 * 100 = 40000byte 。真实的图片应该会略大一些,一般会有40字节的头文件。
剩下的这个alpha_8 这个配置,我个人认为是无用的。因为项目正好需要这个配置的图像文件,ios上是直接有函数对应的,但是安卓上的这个配置不可用,我试了很多办法都不行。而且我在google的官方文档中没有找到相关的声明。这点是大家需要注意的。 如果有知道原因的大神也希望留言给我
还有就是 灰度和黑白的区别,灰度图其实就是亮度图,每个像素由 0-255之间的数字来描述。黑白图的质量就低多了。每个像素 只有1bit ,(0或者1)来描述。
android本身是不支持这两种图的,但是这些都可以手写出来,灰度有转换公式,黑白的话可以先转换成灰度,然后判断小于128 则为0,反之则为1 ,主要是的难点是文件的头部信息格式。
最后是一些常见的图像模式:argb,cmyk(印刷标准),yuv(android摄像机返回的信息),rgb,还有灰度,黑白。
- 关于android 图像格式问题
- android CodecCapabilities 图像格式
- 图像格式
- 图像格式
- 图像格式
- 图像格式
- ---很不错的<android CodecCapabilities 图像格式> ---图文并茂
- Android图像格式类及图像转换方法
- 关于YUV420P、YUYV、RGB 图像格式的转换总结
- 关于BMP图像格式非常详细的描述,w…
- 关于YUV420P、YUYV、RGB 图像格式的转换总结
- 杂记(关于域名、网名以及一些常用图像格式、像素)
- 关于android:layout_weight问题
- 关于android 打包问题
- android 关于时区问题
- 关于android回收问题
- 关于android输入法问题
- android 关于时间问题
- HTML5 自动聚焦 属性
- 如何设计好一款iOS游戏UI的细节
- 如何安装Ctags 和 Taglist
- CF 52C Circular RMQ(区间更新,区间询问)
- Subversion的两种工作模式
- 关于android 图像格式问题
- hdu 4649——Professor Tian
- 面试题:赛马问题
- UVA 10025 (13.08.06)
- hdu 2048 神、上帝以及老天爷
- 称球问题
- HDUOJ 4649 2013多校第五场第7题
- 给IT新人的15点建议:苦逼程序员的辛酸反省与总结
- HDU 1799 循环多少次?(排列组合,dp)