linux开源32位gif显示程序,嵌入式Linux下LCD应用编程: 调用giflib库解码显示GIF动态图...

一、开发环境介绍开发板:友善之臂Tiny4412LCD型号:S702 、分辨率: 800*480Linux内核版本:Linux 3.5交叉编译器:arm-linux-gcc 4.5.1二、GIF文件格式简单介绍生活中常用图片格式有BMP、PNG、JPG、GIF等。BMP图片的显示很简单,可以直接从图片文件里读取RGB数据进行显示.。PNG格式图片显示,直接调用libpng库里的接口函数解码显示;J...
摘要由CSDN通过智能技术生成

一、开发环境介绍

开发板:友善之臂Tiny4412

LCD型号:S702 、分辨率: 800*480

Linux内核版本:Linux 3.5

交叉编译器:arm-linux-gcc 4.5.1

二、GIF文件格式简单介绍

生活中常用图片格式有BMP、PNG、JPG、GIF等。BMP图片的显示很简单,可以直接从图片文件里读取RGB数据进行显示.。PNG格式图片显示,直接调用libpng库里的接口函数解码显示;JPG格式图片也一样,调用libjpeg库的接口函数完成解码即可得到原始RGB数据完成显示;如果要在LCD屏上显示GIF图片,那么也是调用giflib库的接口函数完成解码显示。

在解码jpeg图片和png图片的时候我们不需要对jpeg和png文件格式有了解就可以解码了(了解jpeg和png当然更好),但是在使用giflib解码gif的时候,我们必须要对gif文件有很简单的了解。

gif文件中可以存放一帧或者多帧图像数据,并且可以存放图像控制信息,因此可以存储动画图片,gif文件由文件头开头,文件尾结尾,中间是一些连续的数据块(block)。这些数据块又分为图像数据块和扩展数据块(extension),图像数据块可以理解成存放一帧的图像数据。扩展数据块存放的是一些辅助信息,比如指示怎样显示图像数据等等。

gif文件中的图像基于调色板的,因此一张gif文件中的图像最多只能有255中颜色,因此gif文件只能存储比较简单的图像。gif文件中有两种调色板 ——全局调色板和图像局部调色板。当一帧图像有局部调色板时,则以局部调色板来解码该帧图像,如果该帧图像没有局部调色板则用全局调色板来解码该图像。

更详细的信息可以查阅giflib的文档中的gif89.txt文件,或者在网络搜索相关的信息。

三、移植giflib库到嵌入式Linux平台

9033321dbf90330e43e74acca3e7e45f.png

编译过程:

[wbyq@wbyq work]$ tar xvf /mnt/hgfs/linux-share-dir/giflib-5.2.1.tar.gz

[wbyq@wbyq work]$ cd giflib-5.2.1/

[wbyq@wbyq giflib-5.2.1]$ make CC=arm-linux-gcc

[wbyq@wbyq giflib-5.2.1]$ make PREFIX=$PWD/_install install

[wbyq@wbyq giflib-5.2.1]$ tree _install/

_install/

├── bin

│   ├── gif2rgb

│   ├── gifbuild

│   ├── gifclrmp

│   ├── giffix

│   ├── giftext

│   └── giftool

├── include

│   └── gif_lib.h

├── lib

│   ├── libgif.a

│   ├── libgif.so -> libgif.so.7

│   ├── libgif.so.7 -> libgif.so.7.2.0

│   └── libgif.so.7.2.0

└── share

└── man

└── man1

├── gif2rgb.1

├── gifbg.1

├── gifbuild.1

├── gifclrmp.1

├── gifcolor.1

├── gifecho.1

├── giffix.1

├── gifhisto.1

├── gifinto.1

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值