关于android 图像格式问题
这算是篇总结吧。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图像格式类及图像转换方法
Android图像格式类及图像转换方法介绍 一款软件的开发和图像密切相关,特别是移动应用程序,在视觉效果等方面是至关重要的,因为这直接关系到用户的体验效果.在Android程序开发的过程中,了解存在哪 ...
- Android Weekly Notes Issue #223
Android Weekly Issue #223 September 18th, 2016 Android Weekly Issue #223 本期内容包括: Offline时间戳处理; Acces ...
- Android 资源(resource详解(转)
本文介绍在Android开发中关于资源文件的存储操作.对于Android资源也是非常重要的,主要包括文本字符串(strings).颜色(colors).数组(arrays).动画(anim).布局(l ...
- android studio集成融云 SDK 后在部分机型启动对话时崩溃
最初构建项目是 eclipse, 后来切换到 android studio来做开发. 后来多个用户反馈在android4.4机型上存在启动对话崩溃的问题.但是IOS 版工程从来没有重现. 调试报错信息 ...
- 4412开发板Android教程——Android平台简介
本文转自迅为开发板论坛:http://www.topeetboard.com Android和IOS Android的历史 Android公司 2005年Google收购成立22个月的Android公 ...
- Android 下的EXIF
一.什么是Exif Exif(Exchangeable Image File 可交换图像文件)是一种图象文件格式,它的数据存储与JPEG格式是完全相同的.实际上Exif格式就是在JPEG格式头部插入了 ...
- Android图片浏览器之缩略图
项目源码:http://files.cnblogs.com/files/tgyf/app.rar. 最近在自学Android,尝试实现一般手机上都存在的图片浏览器,从缩略图开始. 直接上图,这是goo ...
- android学习日记09--BitMap操作
Bitmap android里的图像处理重要的类,支持jpg.png.bmp等格式的图像,BitmapDrawable是封装Bitmap的一个对象,Bitmap实现在android.graphics包 ...
- Qualcomm Android display架构分析
Android display架构分析(一) http://blog.csdn.net/BonderWu/archive/2010/08/12/5805961.aspx http://hi.baidu ...
随机推荐
- 五种开源协议的比较(BSD,Apache,GPL,LGPL,MIT)(整理)
BSD开源协议(original BSD license.FreeBSD license.Original BSD license) BSD开源协议是一个给于使用者很大自由的协议.基本上使用者可 ...
- Loadrunner脚本之C语言文件处理函数
一.打开文件 打开文件使用库函数中的fopen函数.fopen函数会为要打开的文件新建一个流,然后返回一个指向file型对象的指针,该file型对象中保存了控制这个流所需要的信息. fp=fopen( ...
- linux中ls命令详解 (转)
-a -- 全部(all).列举目录中的全部文件,包括隐藏文件(.filename).位于这个列表的起首处的 .. 和 . 依次是指父目录和你的当前目录. -l -- 长(long).列举目 ...
- java中子类与基类变量间的赋值
Java中子类与基类变量间的赋值 子类对象可以直接赋给基类变量. 基类对象要赋给子类对象变量,必须执行类型转换, 其语法是: 子类对象变量=(子类名)基类对象名; 也不能乱转换.如果类型转换失败Jav ...
- 解决Socket.IO在IE8下触发disconnect时间过长
本文地址: http://www.cnblogs.com/blackmanba/p/solve-socketIO-IE8-emit-disconnect-too-long.html或者http://f ...
- R语言简单入门
一.运行R语言可以做哪些事? 1.探索性数据分析(将数据绘制图表) 2.统计推断(根据数据进行预测) 3.回归分析(对数据进行拟合分析) 4.机器学习(对数据集进行训练和预测) 5.数据产品开发 二. ...
- 【kd-tree】专题总结
感谢orz神·小黑的指导 kd-tree就是用来计算若干维空间k近/远点的数(shou)据(suo)结(you)构(hua) 建树 假设题目是k维的点 第deep层就是用deep%k+1维把所有点分为 ...
- html5基础知识
html5+css3 html5定义很多简便东西和宽松语法: 文档头: <!doctype html> 文档编码: <meta cha ...
- 使用「max-height」实现自适应高度
.tab-content{ max-height: 0; overflow: hidden; -webkit-transition: max-height .8s; -moz-transition: ...
- 2.VS2010C++各种后缀说明
相关资料:"http://blog.csdn.net/kibaamor/article/details/18700607""http://blog.chinaunix.n ...