关于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 ...
随机推荐
- Delphi实现文件关联
文件关联为我们带来很多的方便.Delphi自带有注册表对象TRegistry,可以通过它取得或改变注册表相关键值的内容. Function GetAssociatedExec(FileExt: Str ...
- 【剑指offer 面试题27】二叉搜索树与双向链表
输入一颗二叉搜索树,将该二叉搜索树转换成一个排序的双向链表. C++: #include <iostream> using namespace std; struct TreeNode { ...
- 【LeetCode】88 - Merge Sorted Array
Given two sorted integer arrays nums1 and nums2, merge nums2 into nums1 as one sorted array. Note:Yo ...
- Chapter15:派生类
在C++语言中,基类将类型相关的函数与派生类不做改变直接继承的函数区别对待,对于某些函数,基类希望它的派生类各自定义适合自身的版本,此时基类就将这些函数声明为虚函数. 派生类必须将其继承而来的成员函数 ...
- SpringMVC + Spring + MyBatis 学习笔记:在类和方法上都使用RequestMapping如何访问
系统:WIN8.1 数据库:Oracle 11GR2 开发工具:MyEclipse 8.6 框架:Spring3.2.9.SpringMVC3.2.9.MyBatis3.2.8 先看代码: @Requ ...
- Eclipse或Myeclipse常用快捷键组合详解
Eclipse 是一个开放源代码的.基于Java的可扩展开发平台,就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境.. Eclipse(Myeclipse)中有很多便于开发的快捷键 ...
- MapSearch 阅读随笔
MapSearch https://developer.apple.com/library/ios/samplecode/MapSearch/Introduction/Intro.html#//app ...
- 总结调用Flash的几种方法
一.Adobe 提供的方法 <object width="200" height="200" classid="clsid:D27CDB6E-A ...
- 【转】Mysql进程管理
mysql> show processlist; +----+------+-----------+------+---------+------+-------+--------------- ...
- 让CSS3给你的文字加上边框宽度,并实现镂空效果
这次,我主要向大家介绍一下CSS3下的-webkit-text-stroke属性,并分享几个用该属性制作的镂空文字效果. 1.-webkit-text-stroke属性简介 CSS边框的一个不足就是只 ...