博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
为gif动画添加水印-有具体实现[2008-02-15日更新]
阅读量:7168 次
发布时间:2019-06-29

本文共 606 字,大约阅读时间需要 2 分钟。

更新:有了改善了性能的具体实现。速度提升几百倍

更新:早晨的版本在计算格帧之间时间延迟上有错误,现更正,纠正了动画变快或者变慢的问题

2007年,曾发过两篇解决为gif动画添加水印的文章,分别为:
当时,没有将完整的实现放上来,过去的一年中,陆陆续续的接到好多朋友的邮件,希望能发一份完整的实现,但由于移动硬盘毁坏,原来的代码已经找不到了,一直没能给大家一个很好的回复,深表歉意,现在将完整的程序重新实现了一遍,速度比较慢的,但思路基本有了,希望能给大家一个交待。
原图片:
水印后:
比去年版本的改进:
1)解决了各帧之间间隔变快的问题
未解决的问题
1)效率问题(2008-02-15已有更新,有了改善性能后的具体实现,速度提升几百倍
2)透明背景的处理
项目文件:
改善性能后的具体实现:
更新:早晨的版本在计算格帧之间时间延迟上有错误,现更正,纠正了动画变快或者变慢的问题
纠正后版本: (最新 2008-02-15 17:49)
原来错误的将
int delay = ora_Img.GetPropertyItem(20736).Value[i]
其实ora_Img.GetPropertyItem(20736).Value获得的是1个byte[],这个数组中每四位代表1个delay值。
现已经更正为 int delay = BitConverter.ToInt32(buffer, i * 4);

转载地址:http://chmwm.baihongyu.com/

你可能感兴趣的文章