一個Gif圖像文件,是有幾個文件進行合成的,因此處理此類文件的時候,不能像Jpeg或者Bmp文件那樣處理。需要把Gif文件拆分幀的形式,然后對每一幀進行處理,處理完后再合成Gif。
其實網(wǎng)上有個例子對于Gif處理非常詳細,地址如下。
http://www.codeproject.com/dotnet/NGif.asp
但是對于一個Gif進行拆分,其實Image對象本身就支持,例如對于一個Gif文件拆分成Jpeg文件方式,可以按照如下的方式進行處理。
using System.Drawing.Drawing2D;
using System.Drawing.Imaging;
Image imgGif = Image.FromFile(@"d:\test.gif");
//Create a new FrameDimension object from this image
FrameDimension ImgFrmDim = new FrameDimension( imgGif.FrameDimensionsList[0] );
//Determine the number of frames in the image
//Note that all images contain at least 1 frame,
//but an animated GIF will contain more than 1 frame.
int nFrameCount = imgGif.GetFrameCount( ImgFrmDim )
// Save every frame into jpeg format
for( int i = 0; i < nFrameCount; i++ )
{
imgGif.SelectActiveFrame( ImgFrmDim, i );
imgGif.Save( string.Format( @"d:\Frame{0}.jpg", i ), ImageFormat.Jpeg );
}