版权所有,禁止匿名转载;禁止商业使用。
.NET Framework 中不能创建动态GIF图片,本文所提供NGif 组件为大家提供了一种合成GIF动态图片,以及将动态图片分解成单张静态图片的方法
下面是使用该组件的示例代码:
/* create Gif */ //you should replace filepath String [] imageFilePaths = new String[]{"c:\\01.png","c:\\02.png","c:\\03.png"}; String outputFilePath = "c:\\test.gif"; AnimatedGifEncoder e = new AnimatedGifEncoder(); e.Start( outputFilePath ); e.SetDelay(500); //-1:no repeat,0:always repeat e.SetRepeat(0); for (int i = 0, count = imageFilePaths.Length; i < count; i++ ) { e.AddFrame( Image.FromFile( imageFilePaths[i] ) ); } e.Finish(); /* extract Gif */ string outputPath = "c:\\"; GifDecoder gifDecoder = new GifDecoder(); gifDecoder.Read( "c:\\test.gif" ); for ( int i = 0, count = gifDecoder.GetFrameCount(); i < count; i++ ) { Image frame = gifDecoder.GetFrame( i ); // frame i frame.Save( outputPath + Guid.NewGuid().ToString() + ".png", ImageFormat.Png ); }
注意:在你写一个 fixed-byte 结构文件时,使用 Stream 替换 BinaryWriter 。