再再發(fā)Gif動(dòng)畫(huà)處理類(lèi)庫(kù) - 315版
不廢話(huà),新增了多個(gè)gif圖片合并功能,改善了單色算法
合成效果:
原圖:
圖片太多,截圖如上
合并后效果:

下面三個(gè)動(dòng)畫(huà)



合并后的效果

注意,您合并的圖像最好大小一致,我沒(méi)有找到完全一樣的圖像,所以費(fèi)了很大的周折,寫(xiě)js的時(shí)候,都知道ie這家伙適應(yīng)能力強(qiáng),隨便寫(xiě)個(gè)函數(shù)就可以支持,可這次IE卻拖了后腿,我的原圖像大小不一致,開(kāi)始我沒(méi)找到最大高度和最大長(zhǎng)度,就一個(gè)個(gè)合成了,在windows中瀏覽沒(méi)有任何問(wèn)題,可以在IE中就無(wú)法動(dòng)畫(huà)了,在firefox中卻可以,費(fèi)了好長(zhǎng)時(shí)間才找到是大小的原因。后來(lái)加了一個(gè)
Size FindMaxSize(List<string> sources)
{
List<int> widths = new List<int>();
List<int> heights = new List<int>();
foreach (string s in sources)
{
Bitmap bmp = new Bitmap(s);
widths.Add(bmp.Width);
heights.Add(bmp.Height);
bmp.Dispose();
}
widths.Sort();
heights.Sort();
return new Size(widths[widths.Count - 1], heights[heights.Count - 1]);
}
才解決問(wèn)題
合并的方法為:
/// <summary>
/// 合并多個(gè)gif文件
/// </summary>
/// <param name="sourceGifs">原圖像路徑集合</param>
/// <param name="outGif">合并后圖像路徑</param>
/// <param name="delay">間隔時(shí)間</param>
/// <param name="repeat">是否重復(fù)播放</param>
public void Merge(List<string> sourceGifs, string outGif, short delay,bool repeat)
另外,單色算法有所改變,先的單色效果為:
原圖:

單色后:

發(fā)現(xiàn)有些人將代碼拷貝過(guò)去之后,馬上將版權(quán)改成自己的名字,而且在網(wǎng)上肆意張貼,以后的版本不會(huì)直接提供文件下載,如果有需要朋友,只要是園子的注冊(cè)用戶(hù),發(fā)郵件給我,我保準(zhǔn)回復(fù)。這樣也許可以為園子增加一些注冊(cè)用戶(hù)吧,我的email:jillzhang@126.com,再次聲明,園子中兄弟有需要的,發(fā)郵件給我就可以了,由此帶來(lái)的不便,還請(qǐng)兄弟們能理解。郵件中最好注明博客園ID和網(wǎng)址
聲明:代碼公開(kāi),但使用的時(shí)候,請(qǐng)保留作者信息和版權(quán)聲明,這樣我才會(huì)有動(dòng)力繼續(xù)完善,謝謝配合
合成效果:
原圖:
圖片太多,截圖如上
合并后效果:

下面三個(gè)動(dòng)畫(huà)



合并后的效果

注意,您合并的圖像最好大小一致,我沒(méi)有找到完全一樣的圖像,所以費(fèi)了很大的周折,寫(xiě)js的時(shí)候,都知道ie這家伙適應(yīng)能力強(qiáng),隨便寫(xiě)個(gè)函數(shù)就可以支持,可這次IE卻拖了后腿,我的原圖像大小不一致,開(kāi)始我沒(méi)找到最大高度和最大長(zhǎng)度,就一個(gè)個(gè)合成了,在windows中瀏覽沒(méi)有任何問(wèn)題,可以在IE中就無(wú)法動(dòng)畫(huà)了,在firefox中卻可以,費(fèi)了好長(zhǎng)時(shí)間才找到是大小的原因。后來(lái)加了一個(gè)
Size FindMaxSize(List<string> sources)
{
List<int> widths = new List<int>();
List<int> heights = new List<int>();
foreach (string s in sources)
{
Bitmap bmp = new Bitmap(s);
widths.Add(bmp.Width);
heights.Add(bmp.Height);
bmp.Dispose();
}
widths.Sort();
heights.Sort();
return new Size(widths[widths.Count - 1], heights[heights.Count - 1]);
}合并的方法為:
/// <summary>
/// 合并多個(gè)gif文件
/// </summary>
/// <param name="sourceGifs">原圖像路徑集合</param>
/// <param name="outGif">合并后圖像路徑</param>
/// <param name="delay">間隔時(shí)間</param>
/// <param name="repeat">是否重復(fù)播放</param>
public void Merge(List<string> sourceGifs, string outGif, short delay,bool repeat)另外,單色算法有所改變,先的單色效果為:
原圖:

單色后:

發(fā)現(xiàn)有些人將代碼拷貝過(guò)去之后,馬上將版權(quán)改成自己的名字,而且在網(wǎng)上肆意張貼,以后的版本不會(huì)直接提供文件下載,如果有需要朋友,只要是園子的注冊(cè)用戶(hù),發(fā)郵件給我,我保準(zhǔn)回復(fù)。這樣也許可以為園子增加一些注冊(cè)用戶(hù)吧,我的email:jillzhang@126.com,再次聲明,園子中兄弟有需要的,發(fā)郵件給我就可以了,由此帶來(lái)的不便,還請(qǐng)兄弟們能理解。郵件中最好注明博客園ID和網(wǎng)址
聲明:代碼公開(kāi),但使用的時(shí)候,請(qǐng)保留作者信息和版權(quán)聲明,這樣我才會(huì)有動(dòng)力繼續(xù)完善,謝謝配合
作者:jillzhang
出處:http://jillzhang.cnblogs.com/
本文版權(quán)歸作者和博客園共有,歡迎轉(zhuǎn)載,但未經(jīng)作者同意必須保留此段聲明,且在文章頁(yè)面明顯位置給出原文連接,否則保留追究法律責(zé)任的權(quán)利。
出處:http://jillzhang.cnblogs.com/
本文版權(quán)歸作者和博客園共有,歡迎轉(zhuǎn)載,但未經(jīng)作者同意必須保留此段聲明,且在文章頁(yè)面明顯位置給出原文連接,否則保留追究法律責(zé)任的權(quán)利。

Gif處理庫(kù)
新增了多個(gè)gif圖片合并功能,改善了單色算法

浙公網(wǎng)安備 33010602011771號(hào)