Leadtools.Multimedia Namespace > CaptureCtrl Class : CaptureImage Method |
'Declaration Public Overridable Function CaptureImage() As Image
'Usage Dim instance As CaptureCtrl Dim value As Image value = instance.CaptureImage()
public virtual Image CaptureImage()
public: virtual Image^ CaptureImage();
If the method fails, an error is raised. For more information, refer to the Error Codes.
Note: Internally this method calls StartCapture with the capture mode set to CaptureMode.Still. It then waits for the current capture delay setting (specified by CaptureStillDelay), before capturing the still picture. Finally, it stops the graph by calling StopCapture.
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 _result As Boolean = False Public _form As CaptureCtrlForm = New CaptureCtrlForm() Public Sub CaptureImageExample() ' reference the capture control Dim capturectrl As CaptureCtrl = _form.CaptureCtrl Dim inFile As String = Path.Combine(LEAD_VARS.MediaDir, "CaptureCtrl_Source.avi") Dim outFile As String = Path.Combine(LEAD_VARS.MediaDir, "CaptureCtrl_CaptureImageExample.jpg") Try ' set the video capture device, use your capture device name here If capturectrl.VideoDevices("USB") Is Nothing Then Throw New Exception("No USB video device available") End If capturectrl.VideoDevices("USB").Selected = True ' capture the image Dim image As Image = capturectrl.CaptureImage() If Not image Is Nothing Then image.Save(outFile, ImageFormat.Jpeg) End If ' stop the capture capturectrl.StopCapture() ' check for the capture file and set the result If File.Exists(Path.Combine(Directory.GetCurrentDirectory(), outFile)) Then _result = True End If 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 capturectrl.State = CaptureState.Running Application.DoEvents() Loop End Sub Public Sub CaptureImage_Helper(ByVal sender As Object, ByVal e As EventArgs) ' set result _result = True 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 bool _result = false; public CaptureCtrlForm _form = new CaptureCtrlForm(); public void CaptureImageExample() { // reference the capture control CaptureCtrl capturectrl = _form.CaptureCtrl; string inFile = Path.Combine(LEAD_VARS.MediaDir,"CaptureCtrl_Source.avi"); string outFile = Path.Combine(LEAD_VARS.MediaDir,"CaptureCtrl_CaptureImageExample.jpg"); try { // set the video capture device, use your capture device name here if (capturectrl.VideoDevices["USB"] == null) throw new Exception("No USB video device available"); capturectrl.VideoDevices["USB"].Selected = true; // capture the image Image image = capturectrl.CaptureImage(); if (image != null) image.Save(outFile, ImageFormat.Jpeg); // stop the capture capturectrl.StopCapture(); // check for the capture file and set the result if (File.Exists(Path.Combine(Directory.GetCurrentDirectory(), outFile))) _result = true; } 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 (capturectrl.State == CaptureState.Running) Application.DoEvents(); } public void CaptureImage_Helper(object sender, EventArgs e) { // set result _result = true; } static class LEAD_VARS { public const string MediaDir = @"C:\Program Files (x86)\LEAD Technologies\LEADTOOLS 18\Media"; }