Android培训班(26)

来源:网络 责任编辑:栏目编辑 发表时间:2013-07-02 02:27 点击:

<!-- @page { margin: 2cm } P { margin-bottom: 0.21cm } -->

接着来分析函数 to_565_rle,这个函数主要实现从24位颜色变换为565的16位颜色表示,并且进行行程压缩编码,代码如下:

void to_565_rle(void)

{

unsigned char in[3];

unsigned short last, color, count;

unsigned total = 0;

count = 0;

while(read(0, in, 3) == 3) {

从标准输入的文件,每次读取三个字节,如果读取不够三个字节,就退出处理。

color = to565(in[0],in[1],in[2]);

每三个字节作为一个像素点,然后通过宏 to565变换为565的16位表示。

下面这段代码进行游程编码,并写到标准输出文件里。

if (count) {

if ((color == last) && (count != 65535)) {

count++;

continue;

} else {

write(1, &count, 2);

write(1, &last, 2);

total += count;

}

}

last = color;

count = 1;

}

下面这段代码写入最后一个像素的数据。

if (count) {

write(1, &count, 2);

write(1, &last, 2);

total += count;

}

这里提示总共处理多少个像素数。

fprintf(stderr,"%d pixels ",total);

}

    发表评论
    请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
    用户名: 验证码:点击我更换图片
    最新评论 更多>>

    推荐热点

    • Android 完全退出程序
    • 原创:Android应用开发-Andorid歌词秀,含源码
    • android 屏幕保护
    • Android手机软件汉化教程---第四课 dex文件汉化
    • 众多Android 开源项目推荐,给力工作给力学习
    • Android Audio代码分析4
    • Android得到已安装的应用程序信息!
    • Android开发者指南(29) —— USB Host and Accessory
    • Android成长的幕后推手:工程师鲁宾
    网站首页 - 友情链接 - 网站地图 - TAG标签 - RSS订阅 - 内容搜索
    Copyright © 2008-2015 计算机技术学习交流网. 版权所有

    豫ICP备11007008号-1