Leadtools.Multimedia Namespace > PlayCtrl Class : GetStillImage Method |
Note: The frame data is retrieved from the underlying graph after the processing filters. If the capture needs to occur before the processing is completed use the LeadVideoCallBackFilter and place it first in the collection of processing filters.
Imports Leadtools Imports Leadtools.Multimedia Imports LeadtoolsMultimediaExamples.Fixtures Public _form As PlayCtrlForm = New PlayCtrlForm() Public _playctrl As PlayCtrl = Nothing Public _result As Boolean = False Public _inFile As String = Path.Combine(LEAD_VARS.MediaDir, "PlayCtrl_Source.avi") Public _outFile As String = Path.Combine(LEAD_VARS.MediaDir, "PlayCtrl_GetStillImageExample.jpg") Public Sub GetStillImageExample() ' reference the play control _playctrl = _form.PlayCtrl Try ' set the test timer on our form _form.TestTimer.Interval = 2000 ' wait 2 seconds after start AddHandler _form.TestTimer.Tick, AddressOf GetStillImage_Helper ' set input media file _playctrl.SourceFile = _inFile ' set the timer on _form.TestTimer.Start() Catch e1 As Exception _result = False End Try ' we'll loop on the state and pump messages for this example. ' but you should not need to if running from a Windows Forms application. Do While _playctrl.State = PlayState.Running Application.DoEvents() Loop ' check for the capture file and set the result If File.Exists(Path.Combine(Directory.GetCurrentDirectory(), _outFile)) Then _result = True End If End Sub Public Sub GetStillImage_Helper(ByVal sender As Object, ByVal e As EventArgs) ' get a still image Dim image As Image = _playctrl.GetStillImage(-1) If Not image Is Nothing Then image.Save(_outFile, ImageFormat.Jpeg) End If ' stop the capture _playctrl.Stop() End Sub Public NotInheritable Class LEAD_VARS Public Const MediaDir As String = "C:\Program Files (x86)\LEAD Technologies\LEADTOOLS 18\Media" End Class
using Leadtools; using Leadtools.Multimedia; using LeadtoolsMultimediaExamples.Fixtures; public PlayCtrlForm _form = new PlayCtrlForm(); public PlayCtrl _playctrl = null; public bool _result = false; public string _inFile =Path.Combine(LEAD_VARS.MediaDir,"PlayCtrl_Source.avi"); public string _outFile =Path.Combine(LEAD_VARS.MediaDir,"PlayCtrl_GetStillImageExample.jpg"); public void GetStillImageExample() { // reference the play control _playctrl = _form.PlayCtrl; try { // set the test timer on our form _form.TestTimer.Interval = 2000; // wait 2 seconds after start _form.TestTimer.Tick += GetStillImage_Helper; // set input media file _playctrl.SourceFile = _inFile; // set the timer on _form.TestTimer.Start(); } catch (Exception) { _result = false; } // we'll loop on the state and pump messages for this example. // but you should not need to if running from a Windows Forms application. while (_playctrl.State == PlayState.Running) Application.DoEvents(); // check for the capture file and set the result if (File.Exists(Path.Combine(Directory.GetCurrentDirectory(), _outFile))) _result = true; } public void GetStillImage_Helper(object sender, EventArgs e) { // get a still image Image image = _playctrl.GetStillImage(-1); if (image != null) image.Save(_outFile, ImageFormat.Jpeg); // stop the capture _playctrl.Stop(); } static class LEAD_VARS { public const string MediaDir = @"C:\Program Files (x86)\LEAD Technologies\LEADTOOLS 18\Media"; }