C#實現(xiàn)合并多張圖片為GIF動態(tài)圖
文章描述
在前一篇寫了如何將一張GIF動態(tài)圖分解成一幀一幀的圖片,這一篇我們就把喝進去的一瓢水給還回去。即把一張又一張的圖片去拼合成一張GIF動態(tài)圖。
這里我們使用的是上一篇分割下來的每一幀圖片,然后來進行一個還原操作,其實下面的代碼中,能做到也不僅僅是還原,還可以同時設置延遲間隔等一些屬性,也就是對這張動態(tài)圖進行慢放或者快放的操作。
開發(fā)環(huán)境
.NET Framework版本:4.5
開發(fā)工具
Visual Studio 2013
實現(xiàn)代碼
string newPath = Application.StartupPath + "\\new.gif"; public Form1() { InitializeComponent(); textBox1.Text = Application.StartupPath + "\\images\\"; } private void btn_merge_Click(object sender, EventArgs e) { List<string> imgs = Directory.GetFiles(textBox1.Text, "*.jpg").ToList(); imgs.Sort((a, b) => { string reg = "[0-9]+"; int a_index = int.Parse(Regex.Match(a, reg).Value); int b_index = int.Parse(Regex.Match(b, reg).Value); return a_index > b_index ? 1 : a_index < b_index ? -1 : 0; }); AnimatedGifEncoder ae = new AnimatedGifEncoder(); ae.Start(newPath); ae.SetDelay(120); // 延遲間隔 ae.SetRepeat(0); //-1:不循環(huán),0:循環(huán)播放 for (int i = 0; i < imgs.Count; i++) { ae.AddFrame(Image.FromFile(imgs[i])); } ae.Finish(); MessageBox.Show("處理完成,請點擊預覽查看"); } private void btn_preview_Click(object sender, EventArgs e) { Image img = Image.FromFile(newPath); lb_img.Image = img; }
實現(xiàn)效果
代碼解析
看代碼是不是又是挺簡單的?又是幾行代碼?其實不然,這里使用到了一套開源的代碼(AnimatedGif還是什么來著,年代有點久遠,記不太清了,只知道代碼里面是這么寫的,應該根據(jù)這個關鍵詞時可以搜索到的),不過也全是c#代碼寫的,但是太多就沒放到文章中來。
在上一篇中,進行GIF動態(tài)圖片分割的時候,可以看到對每一張圖片保存命名的時候進行了編號,所以這里合成的時候,就要按照編號(幀)排序再合成(由于我命名時加了其他字符串,所以這里又用正則處理了下),這里注意一定不能亂排,否則圖片播放器來不太連貫。當然你需求就是一張張無序播放的話,倒是無所謂。
到此這篇關于C#實現(xiàn)合并多張圖片為GIF動態(tài)圖的文章就介紹到這了,更多相關C#合并圖片內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
C#實現(xiàn)將Email地址轉(zhuǎn)成圖片顯示的方法
這篇文章主要介紹了C#實現(xiàn)將Email地址轉(zhuǎn)成圖片顯示的方法,涉及C#操作圖片的相關技巧,需要的朋友可以參考下2015-06-06C# readnodefile()不能讀取帶有文件名為漢字的osg文件解決方法
這篇文章主要介紹了C# readnodefile()不能讀取帶有文件名為漢字的osg文件解決方法,需要的朋友可以參考下2015-09-09C# 制作PictureBox圓形頭像框并從數(shù)據(jù)庫中讀取頭像
C#提供的PictureBox控鍵默認情況下是方形的非常大的影響美觀,怎么解決這一問題呢?下面小編給大家?guī)砹薈# 制作PictureBox圓形頭像框并從數(shù)據(jù)庫中讀取頭像的操作代碼,感興趣的朋友一起學習下吧2021-08-08C#使用DropDownList綁定添加新數(shù)據(jù)的方法匯總
這篇文章主要介紹了C#使用DropDownList綁定添加新數(shù)據(jù)的方法匯總的相關資料,需要的朋友可以參考下2016-03-03