Leadtools.Multimedia Namespace > CaptureCtrl Class : GetStillDIB Method |
'Usage Dim instance As CaptureCtrl Dim timeOut As Integer Dim value As IntPtr value = instance.GetStillDIB(timeOut)
If the method fails, an error is raised. For more information, refer to the Error Codes.
Note: The frame data is retrieved from the underlying graph after the processing filters. If the capture needs to occur before 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_GetStillDIBExample.dib") Public Sub GetStillDIBExample() ' 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 ' start the capture _capturectrl.StartCapture(CaptureMode.Still) ' get the still DIB Dim DIB As IntPtr = _capturectrl.GetStillDIB(-1) ' stop the capture _capturectrl.StopCapture() ' 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 GetStillDIBExample() { // 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 the capture mode to still and start capturectrl.StartCapture(CaptureMode.Still); // capture device independent bitmap IntPtr dib = capturectrl.GetStillDIB(-1); // stop the capture capturectrl.StopCapture(); _result = (dib != null); //free allocated global memory Marshal.FreeHGlobal(dib); } catch (COMException) { _result = false; } catch (Exception) { _result = false; } }