Doug, You might want to check the GDK namespace (GIMP Drawing Kit) and not GTK itself, there is the concept of Pixbuf in GDK (which would be the equivalent of GDI+ for Windows) that allows you to work on images.
There is a PixbufAnimationIter ( http://docs.go-mono.com/?link=T%3aGdk.PixbufAnimationIter) class that might come handy, as I understand you'd have to create a new Gdk.PixbufAnimation object and then get the Iter by inviking a method and then get the frames: var animation = new Gdk.PixbufAnimation("path_to.gif"); var iter = animation.GetIter(start_time); var pixbuf = iter.Pixbuf; //assign the frame iter.Advance(time); //advance to next frame var pixbuf2 = iter.Pixbuf; //here you'll get the second frame I haven't tried yet this, but I'm pretty sure this is what you are after. Let me know if it worked. On Wed, Apr 10, 2013 at 6:58 PM, Doug Blank <[email protected]> wrote: > I couldn't figure out how to access the data through Gtk#, so I got > the data through System.Drawing: > > public static List loadPictures (string filename) > { > List list = new List(); > System.Drawing.Bitmap image = > (System.Drawing.Bitmap)System.Drawing.Bitmap.FromFile(filename); > System.Drawing.Imaging.FrameDimension dimension = new > > System.Drawing.Imaging.FrameDimension(image.FrameDimensionsList[0]); > int frame_count = image.GetFrameCount(dimension); > for (int i=0; i < frame_count; i++) { > image.SelectActiveFrame(dimension, i); > list.append( new Graphics.Picture(image)); > } > return list; > } > > -Doug > > On Wed, Apr 10, 2013 at 1:41 PM, Doug Blank <[email protected]> wrote: > > Gtk-sharp List, > > > > I can use the Gtk# interface to get the frames of a gif animation > > based on time, like the following IronPython code shows: > > > > image = Gtk.Image(filename) > > if image.Animation: > > if not image.Animation.IsStaticImage: > > iter = image.Animation.GetIter(System.IntPtr.Zero) > > while iter.DelayTime > -1: > > pixbuf = iter.Pixbuf > > ## do something with pixbuf > > iter.Advance(System.IntPtr.Zero) ## advance to current time > > > > But, can I actually get the actual individual *frames* from the gif > > file? That is, I can use this interface to step through time getting > > the appropriate image for the specified time, but if an animated gif > > has 7 gifs in it, is there a direct way to just get the 7 pixbufs? > > > > Thanks for any pointers, > > > > -Doug > _______________________________________________ > Gtk-sharp-list maillist - [email protected] > http://lists.ximian.com/mailman/listinfo/gtk-sharp-list > -- *Gustavo Rubio* MX: (664) 608-0659 US: (619) 502-9192 http://42ideas.mx
_______________________________________________ Gtk-sharp-list maillist - [email protected] http://lists.ximian.com/mailman/listinfo/gtk-sharp-list
