為gif動畫添加水印-有具體實現[2008-02-15日更新]
更新:有了改善了性能的具體實現。速度提升幾百倍
更新:早晨的版本在計算格幀之間時間延遲上有錯誤,現更正,糾正了動畫變快或者變慢的問題
2007年,曾發過兩篇解決為gif動畫添加水印的文章,分別為:
給gif動畫添加水印的初步實現
改善了性能的gif動畫添加水印
當時,沒有將完整的實現放上來,過去的一年中,陸陸續續的接到好多朋友的郵件,希望能發一份完整的實現,但由于移動硬盤毀壞,原來的代碼已經找不到了,一直沒能給大家一個很好的回復,深表歉意,現在將完整的程序重新實現了一遍,速度比較慢的,但思路基本有了,希望能給大家一個交待。
原圖片:

水印后:

比去年版本的改進:
1)解決了各幀之間間隔變快的問題
未解決的問題
1)效率問題(2008-02-15已有更新,有了改善性能后的具體實現,速度提升幾百倍)
2)透明背景的處理
項目文件:/Files/jillzhang/Gif.rar
改善性能后的具體實現:/Files/jillzhang/Gif_Faster.rar
更新:早晨的版本在計算格幀之間時間延遲上有錯誤,現更正,糾正了動畫變快或者變慢的問題
糾正后版本:/Files/jillzhang/Gif_Faster_LastEdited.rar (最新 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);
作者:jillzhang
出處:http://jillzhang.cnblogs.com/
本文版權歸作者和博客園共有,歡迎轉載,但未經作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文連接,否則保留追究法律責任的權利。
出處:http://jillzhang.cnblogs.com/
本文版權歸作者和博客園共有,歡迎轉載,但未經作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文連接,否則保留追究法律責任的權利。

浙公網安備 33010602011771號