图像处理--GIF和静态图的叠加

不少图片处理软件都有一种功能:用户上传一张静态照片,然后可以从软件提供的一些动态图片(gif)选择一种,常见的是相框之类的,和静态图片合成,得到新的动态图片。这就是GIF和静态图片的叠加。


要实现上面的功能,思路还是比较清晰的。GIF图片格式可以看成是多个单帧图片的组合,从GIF图中提取每一帧图片,和静态图混合,最终再将混合后的n张图片组合成GIF。


在实际操作中,涉及到GIF的格式,GIF的拆分,图片混合,真彩色转256色,图片效果优化,GIF组合等。


首先介绍下GIF的格式


GIF图象是基于颜色列表的(存储的数据是该点的颜色对应于颜色列表的索引值),最多只支持8位(256色)。GIF文件内部分成许多存储块,用来存储多幅图象或者是决定图象表现行为的控制块,用以实现动画和交互式应用。GIF文件还通过GIF-LZW压缩算法压缩图象数据来减少图象尺寸。


GIF图像格式



大致分为三部分:文件头、GIF数据流、文件结尾

1.文件头

1.1GIF署名:由三个字节组成,固定为G、I、F,表示这是一张GIF图

1.2版本号:由三个字节组成,值为87a或89a。89a版本增加了一些扩展块,现在使用的GIF是89a版本


2.文件结尾

2.1文件终结器:1个字节,固定值0x3b,标识GIF图结束。


3.GIF数据流

这是最大的一块,描述了GIF的全局信息,以及每一帧GIF的信息

3.1控制块

3.1.1逻辑屏幕标识符

共7个字节,记录一些全局的信息。

wWidthGIF图像宽度,2Byte

wDepthGIF图像高度,2Byte

Globalflag1Byte

7

6

5

4

3

2

1

0

GlobalPal 

ColorRes

SortFlag  

PalBits

是否有全局调色板

ColorRes+1表示色彩深度

全局调色板中的RGB颜色值是否按照使用率进行从高到底的 次序排序的

全局调色板的位数

byBackground1Byte

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值