Click here to Skip to main content
13,735,231 members
Click here to Skip to main content
Add your own
alternative version

Stats

1.2M views
15.8K downloads
116 bookmarked
Posted 1 Sep 2005
Licenced CPOL

NGif, Animated GIF Encoder for .NET

, 1 Sep 2005
Rate this:
Please Sign up or sign in to vote.
Create animated GIF images using C#.

Sample Image - NGif.gif

Introduction

Because .NET Framework can't create animated GIF images, NGif provides a way to create GIF animations in the .NET framework. It can create an animated GIF from several images and extract images from an animated GIF.

Using the code

/* 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 );
}

Points of Interest

Use Stream to replace BinaryWriter when you write a fixed-byte structured binary file.

History

  • 31 Aug 2005: Draft.

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)

Share

About the Author

gOODiDEA.NET
China China
No Biography provided

You may also be interested in...

Pro
Pro

Comments and Discussions

 
GeneralBug: loopcount should be initialized at -1 Pin
dB.19-Feb-07 11:36
memberdB.19-Feb-07 11:36 
GeneralResizing an animated GIF Pin
dB.19-Feb-07 11:32
memberdB.19-Feb-07 11:32 
GeneralAccess to the path "c:\test.gif" is denied. Pin
saikatchoudhury20-Dec-06 20:43
membersaikatchoudhury20-Dec-06 20:43 
QuestionRelease as open source project? Pin
jongalloway16-Aug-06 11:33
memberjongalloway16-Aug-06 11:33 
General[Message Deleted] Pin
Damian Wood2-Jul-06 3:35
memberDamian Wood2-Jul-06 3:35 
GeneralRe: Solution for last 2 pixels of a frame being white Pin
BenBearChen24-Aug-06 18:10
memberBenBearChen24-Aug-06 18:10 
GeneralAnother Solution ! be tested! Pin
tianlupan224-Aug-06 21:31
membertianlupan224-Aug-06 21:31 
GeneralBUG! Last pixel (bottom-right) always white! (+) Pin
dtrofimov25-Feb-06 9:57
memberdtrofimov25-Feb-06 9:57 
GeneralRe: BUG! Last pixel (bottom-right) always white! (+) Pin
morhost28-Feb-12 4:45
membermorhost28-Feb-12 4:45 
QuestionBottom Right Corner Problem? Pin
RipplingCreek4-Feb-06 8:07
memberRipplingCreek4-Feb-06 8:07 
GeneralAdded output to a MemoryStream Pin
tgiphil1-Sep-05 22:59
membertgiphil1-Sep-05 22:59 
GeneralRe: Added output to a MemoryStream Pin
merto22-Jan-06 8:47
membermerto22-Jan-06 8:47 
GeneralRe: Added output to a MemoryStream Pin
ssh59110-Dec-06 20:21
memberssh59110-Dec-06 20:21 
GeneralRe: Added output to a MemoryStream Pin
dB.19-Feb-07 11:33
memberdB.19-Feb-07 11:33 
GeneralSuggestions Pin
The_Mega_ZZTer1-Sep-05 17:46
memberThe_Mega_ZZTer1-Sep-05 17:46 
QuestionRe: Suggestions Pin
ammarmujeeb30-Jan-06 2:10
memberammarmujeeb30-Jan-06 2:10 
AnswerRe: Suggestions Pin
tianlupan214-Aug-06 5:45
membertianlupan214-Aug-06 5:45 
AnswerRe: Suggestions Pin
pedro.pandre17-Aug-06 1:56
memberpedro.pandre17-Aug-06 1:56 
GeneralRe: Suggestions Pin
pedro.pandre17-Aug-06 2:03
memberpedro.pandre17-Aug-06 2:03 
AnswerRe: Suggestions [modified] Pin
Phoenixillusion2-Mar-07 23:08
memberPhoenixillusion2-Mar-07 23:08 
GeneralRe: Suggestions Pin
Jim Hunt15-Jun-07 8:22
memberJim Hunt15-Jun-07 8:22 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.

Permalink | Advertise | Privacy | Cookies | Terms of Use | Mobile
Web01-2016 | 2.8.180920.1 | Last Updated 1 Sep 2005
Article Copyright 2005 by gOODiDEA.NET
Everything else Copyright © CodeProject, 1999-2018
Layout: fixed | fluid