Leadtools.MediaFoundation Namespace > PlayCtrl Class : SaveStillBitmap Method |
'Declaration Public Overridable Sub SaveStillBitmap( _ ByVal fileName As String, _ ByVal format As StillFormatType, _ ByVal quality As Integer, _ ByVal flags As Integer, _ ByVal timeOut As Integer _ )
'Usage Dim instance As PlayCtrl Dim fileName As String Dim format As StillFormatType Dim quality As Integer Dim flags As Integer Dim timeOut As Integer instance.SaveStillBitmap(fileName, format, quality, flags, timeOut)
This method blocks (does not return) until the timeout occurs or the sample is snapped. The following methods can also be used to obtain still images:
Imports Leadtools Imports Leadtools.MediaFoundation Imports LeadtoolsMediaFoundationExamples.Fixtures Public _result As Boolean = False Public _form As PlayCtrlForm = New PlayCtrlForm() Public _playctrl As PlayCtrl = Nothing Public _bmpFile As String = Path.Combine(LEAD_VARS.MediaDir, "PlayCtrl_SaveStillBitmap.bmp") Public Sub SaveStillBitmapExample() ' input and output file names Dim inFile As String = Path.Combine(LEAD_VARS.MediaDir, "PlayCtrl_ShortSource.avi") Try ' reference the convert control _playctrl = _form.PlayCtrl ' set a timer on the form to make the still bitmap _form.TestTimer.Interval = 5000 AddHandler _form.TestTimer.Tick, AddressOf SaveStillBitmap_Helper ' add the first video processor for playback _playctrl.SelectedVideoProcessors.Add(_playctrl.VideoProcessors(0)) ' set the source and target files _playctrl.SourceFile = inFile ' now start the test timer for the still capture _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 End Sub Public Sub SaveStillBitmap_Helper(ByVal sender As Object, ByVal e As EventArgs) ' cancel the timer _form.TestTimer.Stop() ' try to simulate an error condition _playctrl.SaveStillBitmap(_bmpFile, StillFormatType.BMP, 0, 0, -1) ' check for the capture file and set the result If File.Exists(Path.Combine(Directory.GetCurrentDirectory(), _bmpFile)) Then _result = True End If _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.MediaFoundation; using LeadtoolsMediaFoundationExamples.Fixtures; public bool _result = false; public PlayCtrlForm _form = new PlayCtrlForm(); public PlayCtrl _playctrl = null; public string _bmpFile = Path.Combine(LEAD_VARS.MediaDir,"PlayCtrl_SaveStillBitmap.bmp"); public void SaveStillBitmapExample() { // input and output file names string inFile =Path.Combine(LEAD_VARS.MediaDir,"PlayCtrl_ShortSource.avi"); try { // reference the convert control _playctrl = _form.PlayCtrl; // set a timer on the form to make the still bitmap _form.TestTimer.Interval = 5000; _form.TestTimer.Tick += new EventHandler(SaveStillBitmap_Helper); // add the first video processor for playback _playctrl.SelectedVideoProcessors.Add(_playctrl.VideoProcessors[0]); // set the source and target files _playctrl.SourceFile = inFile; // now start the test timer for the still capture _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(); } public void SaveStillBitmap_Helper(object sender, EventArgs e) { // cancel the timer _form.TestTimer.Stop(); // try to simulate an error condition _playctrl.SaveStillBitmap(_bmpFile, StillFormatType.BMP, 0, 0, -1); // check for the capture file and set the result if (File.Exists(Path.Combine(Directory.GetCurrentDirectory(), _bmpFile))) _result = true; _playctrl.Stop(); } static class LEAD_VARS { public const string MediaDir = @"C:\Program Files (x86)\LEAD Technologies\LEADTOOLS 18\Media"; }