Leadtools.Multimedia Namespace > CaptureCtrl Class : CaptureDIB Method |
'Declaration Public Overridable Function CaptureDIB() As IntPtr
'Usage Dim instance As CaptureCtrl Dim value As IntPtr value = instance.CaptureDIB()
public virtual IntPtr CaptureDIB()
public: virtual IntPtr CaptureDIB();
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 DIB. 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 _form As CaptureCtrlForm = New CaptureCtrlForm() Public _capturectrl As CaptureCtrl = Nothing Public _result As Boolean = False Private _dibFile As String = Path.Combine(LEAD_VARS.MediaDir, "CaptureCtrl_CaptureDIBExample.dib") Public Sub CaptureDIBExample() ' reference the capture control _capturectrl = _form.CaptureCtrl Try ' select a video capture device If _capturectrl.VideoDevices("USB") Is Nothing Then Throw New Exception("No USB video device available") End If _capturectrl.VideoDevices("USB").Selected = True ' set a video compressor for the capture file _capturectrl.VideoCompressors.Mpeg4.Selected = True ' set still delay _capturectrl.CaptureStillDelay = 1000 ' capture DIB Dim DIB As IntPtr = _capturectrl.CaptureDIB() ' check for the captured DIB handle If (DIB <> Nothing) Then _result = True End If ' free allocated global memory Marshal.FreeHGlobal(DIB) Catch e1 As Exception _result = False End Try 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 CaptureDIBExample() { // reference the capture control CaptureCtrl capturectrl = _form.CaptureCtrl; try { // set the video capture device. use your device's name here if (capturectrl.VideoDevices["Logitech"] == null) throw new Exception("No Logitech video device available"); capturectrl.VideoDevices["Logitech"].Selected = true; // set a delay of 1 second to ensure that some capture devices // have time to adjust their gain capturectrl.CaptureStillDelay = 1000; // capture device independent bitmap IntPtr dib = capturectrl.CaptureDIB(); _result = (dib != null); //free allocated global memory Marshal.FreeHGlobal(dib); } catch (COMException) { _result = false; } catch (Exception) { _result = false; } }