Files
TuxHunter/refactor/src/Icarus/Graphics/Animation-JSharp/SimpleFramesetProvider.jsl
2025-06-07 11:39:25 -04:00

44 lines
1.3 KiB
Plaintext

package Icarus.Graphics.Animation;
import System.Drawing.*;
import System.Drawing.Imaging.*;
import System.IO.*;
/**
* This frameset provider simply goes through the frames of an animated image and adds them to the frameset. Basically, this one is good for things like animated GIFs.
*
* @author $Author: asskoala $
* @version $Revision: 1.1 $ $Date: 2005/12/11 21:07:21 $
*/
public class SimpleFramesetProvider implements IFramesetProvider
{
/**
* Goes through the image and extracts frames from it.
*/
public void fillFrameset(Frameset frameSet, Bitmap source)
{
//Get frame count:
FrameDimension fd = new FrameDimension(source.get_FrameDimensionsList()[0]);
int frameCount = source.GetFrameCount(fd.get_Time());
//Save the frames:
for (int i = 0; i < frameCount; i++)
{
MemoryStream stream = new MemoryStream();
source.SelectActiveFrame(fd, i);
source.Save(stream, ImageFormat.get_Bmp());
frameSet.addFrame(((Bitmap) Bitmap.FromStream(stream)), new Point(0, 0));
}
}
/**
* Exports the frame as an animated gif.
*/
public void exportFrameset(Frameset frameset, String filename) throws System.Exception
{
throw new System.NotImplementedException("Sorry, but at this point, .NET cannot generate animated GIFs. Please try one of the other Frameset Providers.");
}
}