Gif animata con c#

giovedì 25 settembre 2008 - 17.10

dio_90 Profilo | Newbie

Buona sera a tutti...
espongo brevemente il mio problema...dovrei inserire una gif animata nel mio programma, la suddetta immagine è una gif animata e fà parte delle risorse...il problema è che nn voglio utilizzare picturebox o simili, vorrei fare tutto da codice...

image img;

img= porgettogif.Properties.Resources.Cursore;
FrameDimension dimension = new FrameDimension(img.FrameDimensionsList[0]);
int frameCount = img.GetFrameCount(dimension);
img.SelectActiveFrame(dimension,3);

il problema è che la gif non è animata, mentre se la apro cn il visualizzatore di immagini
di win la vedo animata...qualcuno può aiutarmi???
Grazie in anticipo. Luca

freeteo Profilo | Guru

ciao,
io tempo fa mi ero fatto un controllo, che si preoccupava di fare questo "refresh" usando un timer, con un codice così:
public partial class PictureBoxAnimated : PictureBox { System.Timers.Timer timeRefresh = new System.Timers.Timer(100); List<Image> pagine = new List<Image>(); Image immagine; public new Image Image { get { return immagine; } set { immagine = value; FrameDimension frameDim = new FrameDimension(immagine.FrameDimensionsList[0]); int frameCount = immagine.GetFrameCount(frameDim); //--- se ha piu' immagini dentro (quindi gif animata) if (frameCount > 1) { for (int i = 0; i < frameCount; i++) { immagine.SelectActiveFrame(frameDim, i); pagine.Add(immagine.Clone() as Image); } timeRefresh.Enabled = true; } else base.Image = immagine; } } public PictureBoxAnimated() { InitializeComponent(); Control.CheckForIllegalCrossThreadCalls = false; timeRefresh.Elapsed += new System.Timers.ElapsedEventHandler(timeRefresh_Elapsed); } int i = 0; void timeRefresh_Elapsed(object sender, System.Timers.ElapsedEventArgs e) { if (!DesignMode) { try { using (Graphics graph = this.CreateGraphics()) { graph.Clear(this.BackColor); graph.DrawImage(pagine[i++ % pagine.Count],0,0,this.Width,this.Height); } } catch { } } } }
quindi estendevo una picturebox normale, in modo da avere comode tutte le sue proprietà, e poter fare il Drag&Drop del controllo sulle form che mi interessavano.

Prova a vedere se magari ti può essere utile come spunto.
ciao.

Matteo Raumer
[MCAD .net]
http://blogs.dotnethell.it/freeteo
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5