Questo sito utilizza cookies, anche di terze parti, per mostrare pubblicità e servizi in linea con il tuo account. Leggi l'informativa sui cookies.
Username: Password: oppure
C# / VB.NET - estrarre fotogrammi
Forum - C# / VB.NET - estrarre fotogrammi

Avatar
systemgvp (Normal User)
Expert


Messaggi: 296
Iscritto: 14/04/2008

Segnala al moderatore
Postato alle 16:23
Lunedì, 16/08/2010
salve,

sto convertendo un'applicazione da Delphi che carica un Filamto e ne estrae i fotogrammi con cadenza prefissata.

Utilizzando WPF riesco tranquillamente a caricare il video (in FullHD) nell'apposito oggetto MediaElement, ma poi come faccio a estrarre il suo contenuto in un'imagine?
come faccio poi a salvare questa immagine in PNG? e come posso sapere l'istante temporale magari in un Label?


systemgvp.altervista.org
PM Quote
Avatar
HeDo (Founder Member)
Guru^2


Messaggi: 2765
Iscritto: 21/09/2007

Segnala al moderatore
Postato alle 22:29
Lunedì, 16/08/2010


Ingegnere Informatico
https://ldlagency.it
PM Quote
Avatar
systemgvp (Normal User)
Expert


Messaggi: 296
Iscritto: 14/04/2008

Segnala al moderatore
Postato alle 23:23
Lunedì, 16/08/2010
per salvare il fotogramma uso:

//estrazione fotogramma
RenderTargetBitmap bmp = new RenderTargetBitmap((int)oggetto.Width, (int)oggetto.Height, 96, 96, PixelFormats.Pbgra32);
bmp.Render(oggetto);
//visualizza l'immagine catturata cattura
image1.Source = BitmapFrame.Create(bmp);

//salva immagine in PNG
PngBitmapEncoder png = new PngBitmapEncoder();
png.Frames.Add((BitmapFrame)image1.Source);
Stream stm = File.Create(@"C:\file.png");
png.Save(stm);
//libera le risorse
stm.Dispose();


dove "oggetto" è un "MediaElement".
Ma come faccio a fare un'estrazione magari ogni 0,2 secondi?

E poi ho notato che la dimensione del fotogramma non corrisponde a quella del video, ma solo a quella dell'oggetto e se l'aumento non cattura ugualmente la parte residua, come faccio a catturarla completa?


systemgvp.altervista.org
PM Quote