这算是篇总结吧。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 图像格式问题的更多相关文章

  1. Android图像格式类及图像转换方法

    Android图像格式类及图像转换方法介绍 一款软件的开发和图像密切相关,特别是移动应用程序,在视觉效果等方面是至关重要的,因为这直接关系到用户的体验效果.在Android程序开发的过程中,了解存在哪 ...

  2. Android Weekly Notes Issue #223

    Android Weekly Issue #223 September 18th, 2016 Android Weekly Issue #223 本期内容包括: Offline时间戳处理; Acces ...

  3. Android 资源(resource详解(转)

    本文介绍在Android开发中关于资源文件的存储操作.对于Android资源也是非常重要的,主要包括文本字符串(strings).颜色(colors).数组(arrays).动画(anim).布局(l ...

  4. android studio集成融云 SDK 后在部分机型启动对话时崩溃

    最初构建项目是 eclipse, 后来切换到 android studio来做开发. 后来多个用户反馈在android4.4机型上存在启动对话崩溃的问题.但是IOS 版工程从来没有重现. 调试报错信息 ...

  5. 4412开发板Android教程——Android平台简介

    本文转自迅为开发板论坛:http://www.topeetboard.com Android和IOS Android的历史 Android公司 2005年Google收购成立22个月的Android公 ...

  6. Android 下的EXIF

    一.什么是Exif Exif(Exchangeable Image File 可交换图像文件)是一种图象文件格式,它的数据存储与JPEG格式是完全相同的.实际上Exif格式就是在JPEG格式头部插入了 ...

  7. Android图片浏览器之缩略图

    项目源码:http://files.cnblogs.com/files/tgyf/app.rar. 最近在自学Android,尝试实现一般手机上都存在的图片浏览器,从缩略图开始. 直接上图,这是goo ...

  8. android学习日记09--BitMap操作

    Bitmap android里的图像处理重要的类,支持jpg.png.bmp等格式的图像,BitmapDrawable是封装Bitmap的一个对象,Bitmap实现在android.graphics包 ...

  9. Qualcomm Android display架构分析

    Android display架构分析(一) http://blog.csdn.net/BonderWu/archive/2010/08/12/5805961.aspx http://hi.baidu ...

随机推荐

  1. 【C#】构造函数的特点

    1.它的函数名与类名相同:2.它可以重载:3.不能指定返回类型,即使是void也不行:4.虽然在一般情况下,构造函数不被显式调用,而是在创建对象时自动被调用.但是并不是不能被显示调用.有些时候是一定要 ...

  2. (转载)OC学习篇之---归档和解挡

    前几篇文章说到了OC中的Foundation框架,今天我们来看一下OC中的一个重要知识点:归档 OC中的归档就是将对象写入到一个文件中,Java中的ObjectInputStream和ObjectOu ...

  3. Thrift框架介绍

    1.前言 Thrift是一个跨语言的服务部署框架,最初由Facebook于2007年开发,2008年进入Apache开源项目.Thrift通过一个中间语言(IDL, 接口定义语言)来定义RPC的接口和 ...

  4. [转] 編程風格要素-The Elements of Programming Style 中文英文中英對照

    转自: http://www.loliman3000.com/tech/2fe33ce32906f0302412881.php 下面的程序風格規則提煉自Brian Kernighan和P. J. Pl ...

  5. MySql数据备份与恢复小结

    方法1 备份 .sql" FROM 表名; 恢复 .sql" INTO TABLE 表名; 补充几个设置 1. FIELDS TERMINATED BY ',' #字段间隔符2. ...

  6. poj 1005 I Think I Need a Houseboat

    #include <iostream> using namespace std; const double pi = 3.1415926535; int main() { ;; doubl ...

  7. Xcode集成Google Test

    Xcode集成Google Test 1.下载源代码https://github.com/google/googletest 2.进入下载文件目录下googletest/make中运行make gte ...

  8. 第二百零八天 how can I 坚持

    今天徐斌生日,生日快乐.买了两个小蛋糕,哈哈 还买了两条熊猫鱼.不知道鱼会不会冻死啊,买了加热器又不想用,看他们造化吧. LOL不错的游戏的. 睡觉,好冷.

  9. 转】MyEclipse使用总结——MyEclipse文件查找技巧

    原博文出自于:http://www.cnblogs.com/xdp-gacl/p/3781749.html 感谢! 一.查找文件 使用快捷键[ctrl+shift+R]弹出弹出文件查找框,如下图所示: ...

  10. <转载>浅谈C/C++的浮点数在内存中的存储方式

    C/C++浮点数在内存中的存储方式 任何数据在内存中都是以二进制的形式存储的,例如一个short型数据1156,其二进制表示形式为00000100 10000100.则在Intel CPU架构的系统中 ...