Android培训班(25)
<!-- @page { margin: 2cm } P { margin-bottom: 0.21cm } -->
其中Android.mk是工程管理文件,to565.c是源程序,就是实现原始图片生成565格式,或者从565格式的图片生成原始格式。那么什么样的格式叫做原始格式呢?什么样的格式叫做565格式呢?为什么需要使用565格式呢?在我们表达图片的颜色空间里,主要使用红、绿、蓝三种颜色,在数字化后,每种颜色采用8位表达,那么每个点占用的大小,就是24位,这样的方式保存到文件里,就是原始格式,因为没有任何的变换。不过采用这种格式时,文件会比较大,特别在嵌入系统里空间特别有限,因此需要转换为一种在颜色和空间大小占用都比较合理的方式。而这种方式,就是565的格式,当然这种方式是以损失颜色精度为条件的。在565格式里,就是红色占5位,绿色占6位,蓝色占5位,刚好16位,采用两个字节就可以表达了,这样比原来每个点少占用一个字节。
接着来分析这个程序的代码,先从main函数开始:
int main(int argc, char **argv)
{
if ((argc == 2) && (!strcmp(argv[1],"-rle"))) {
在这里判断输入的命令行参数是否等于三个,一个命令行参数-rle,这个参数是表示使用游程编码压缩。后面两个参数,一个是表示文件输入,一个是表示文件输出。
to_565_rle();
在这里调用函数 to_565_rle把原始格式转换为565的格式,并且使用游程编码压缩后,再输出到文件里。
} else {
if (argc > 2 && (!strcmp(argv[1], "-w"))) {
如果超过三个参数,并且有参数为-w,那么就执行下面的代码。
to_565_raw_dither(atoi(argv[2]));
这里调用函数 to_565_raw_dither实现带抖动算法的565编码格式输出。
} else {
to_565_raw();
这里调用函数to_565_raw实现原始的565格式输出。
}
}
return 0;
}
补充:移动开发 , Android ,