←Select platform

CaptureDIB Method

Summary

Captures a device independent bitmap.

Syntax

C#
VB
C++
public virtual IntPtr CaptureDIB() 
Public Overridable Function CaptureDIB() As IntPtr 
public: 
virtual IntPtr CaptureDIB();  

Return Value

System.IntPtr

Remarks

If the method succeeds, the caller must free the returned HDIB pointer by calling the Marshal.FreeHGlobal method. 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 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.

Example

C#
VB
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; 
   } 
} 
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 19\Media" 
End Class 

Requirements

Target Platforms

Help Version 19.0.2017.10.27
Products | Support | Contact Us | Copyright Notices
© 1991-2017 LEAD Technologies, Inc. All Rights Reserved.

Leadtools.Multimedia Assembly