站內(nèi)搜索
電腦軟件
編輯推薦
本類(lèi)下載榜
總下載排行
軟件簡(jiǎn)介
GIF反轉(zhuǎn)工具的設(shè)計(jì)思路很簡(jiǎn)單,就是先把gif分解成很多幀,然后對(duì)幀進(jìn)行合并,合并幀之前把幀的位置反轉(zhuǎn)一下就可以了。因?yàn)槲易约簩?duì)圖像處理的知識(shí)不懂,只想到了思路,所以這些功能都要找些資料,然后修改,測(cè)試。
然后是兩張gif的對(duì)比
//原本圖是正著走的
//處理后是倒著走的
gif是動(dòng)態(tài)的嘛。然后我昨天和一個(gè)朋友聊天的時(shí)候發(fā)了一串相同的gif圖,然后看著千篇一律的東西。我想能不能寫(xiě)個(gè)程序?qū)崿F(xiàn)gif的初始狀態(tài)不同呢。什么意思呢。我們知道,gif是由幀構(gòu)成的,我想實(shí)現(xiàn)的功能是比如一個(gè)gif共有十幀,那么我寫(xiě)出來(lái)的程序能夠生成10個(gè)gif文件,分別對(duì)應(yīng)不同的初始狀態(tài)來(lái)進(jìn)行循環(huán)。后來(lái)一想,gif幀太多的話,比較慢,而且也不實(shí)用,于是決定簡(jiǎn)化一下,只做一個(gè)反轉(zhuǎn)工具,比如一個(gè)gif是從左到右播放的,通過(guò)這個(gè)成功可以生成一個(gè)相同的gif圖,不過(guò)是倒著播放的。
分割幀的代碼如下
//解碼gif圖片
publicList<string>GetFrames(stringpPath,stringpSavedPath)
{
Imagegif=Image.FromFile(pPath);
FrameDimensionfd=newFrameDimension(gif.FrameDimensionsList[0]);
//獲取幀數(shù)(gif圖片可能包含多幀,其它格式圖片一般僅一幀)
intcount=gif.GetFrameCount(fd);
List<string>gifList=newList<string>();//以Jpeg格式保存各幀
for(inti=0;i<count;i++)
{
gif.SelectActiveFrame(fd,i);
gif.Save(pSavedPath+"\\frame_"+i+".png",ImageFormat.Png);
gifList.Add(pSavedPath+"\\frame_"+i+".png");
}
returngifList;
}
可以看到,返回了一個(gè)包含所有生成的幀地址的list列表。然后就是使用gifList作為參數(shù)來(lái)合并了。
//獲取系統(tǒng)臨時(shí)目錄存放解碼后的png圖片\r\n
stringtemppath=System.Environment.GetEnvironmentVariable("TEMP");
List<string>gifList=GetFrames(tBoxFile.Text,temppath);
gifList.Reverse();
StringoutputFilePath="new.gif";
AnimatedGifEncoderae=newAnimatedGifEncoder();
ae.Start(outputFilePath);
ae.SetDelay(100);//延遲間隔\r\n
ae.SetRepeat(0);//-1:不循環(huán),0:總是循環(huán)播放\r\n
for(inti=0,count=gifList.Count;i<count;i++)
{
ae.AddFrame(Image.FromFile(gifList[i]));
}
ae.Finish();
MessageBox.Show("成功!新文件已保存在同目錄");
這里面使用了AnimatedGifEncoder這個(gè)類(lèi),這是Gif.Components.dll動(dòng)態(tài)連接庫(kù)里的類(lèi)(此庫(kù)開(kāi)源,文末給出地址),是我在codeProject上找到的。首先我把gifList反轉(zhuǎn),然后合并保存到同目錄。中間生成的幀為了方便我保存到了temp目錄。
本來(lái)這個(gè)庫(kù)里是分割gif的功能的。但是我實(shí)際測(cè)試后發(fā)現(xiàn)效果非常差,圖片黑條泛濫,根本沒(méi)法看。所以還是使用上面那段代碼,相關(guān)代碼我依然保存在工程里,有興趣可以自己測(cè)試。
收起信息返回頂部
CorelDRAW X8矢量繪圖軟件18.0.0.448 官方版
數(shù)碼照片最強(qiáng)的修改工具 純綠色特別版
名片制作專(zhuān)家(專(zhuān)業(yè)名片設(shè)計(jì))v6.2.10綠色版【幾分鐘內(nèi)設(shè)計(jì)打印名片】
無(wú)縫隙合并多張照片ZeallSoft FunPhotor 10.58漢化綠色版【內(nèi)附100款酷模版】
照片自動(dòng)奇跡變清晰DCEnhance v1.0漢化綠色版【附效果圖】
非主流圖片轉(zhuǎn)換器(內(nèi)置多種非主流特效)v1.5綠色版
CorelDRAW X4 14.0.0.701官方簡(jiǎn)體中文綠色版
強(qiáng)大logo制作軟件AAA LOGO v1.21漢化綠色特別版【內(nèi)含100種模板2080種素材】
CorelDRAW 9綠色版
十字繡繡圖制作軟件(PCStitch) V10.021 官方特別版
Photo Effect Studio(神奇的圖片處理軟件)5.56漢化綠色特別版
CANON PhotoStitch(佳能拼接合并全景照片)v3.10簡(jiǎn)體中文綠色版
Picture Doctor(修復(fù)損壞的JPEG.PSD等圖像文件)v1.70漢化綠色版
logo設(shè)計(jì)制作(Sothink Logo Maker Pro) 4.5.4中文綠色版
圖片批量裁剪器 6.0 官方安裝版
全景圖制作工具_(dá)PTGui Pro(全景接片)v8.33漢化純凈安裝版