LEADTOOLS Multimedia (Leadtools.Multimedia assembly) Send comments on this topic. | Back to Introduction | Help Version 17.0.3.22
GetStillDIB Method
See Also 
Leadtools.Multimedia Namespace > CaptureCtrl Class : GetStillDIB Method



timeOut
A value containing the maximum time to wait for the image, in milliseconds.
timeOut
A value containing the maximum time to wait for the image, in milliseconds.
Gets a device independent bitmap during a CaptureMode.Still capture.

Syntax

Visual Basic (Declaration) 
Public Overridable Function GetStillDIB( _
   ByVal timeOut As Integer _
) As IntPtr
Visual Basic (Usage)Copy Code
Dim instance As CaptureCtrl
Dim timeOut As Integer
Dim value As IntPtr
 
value = instance.GetStillDIB(timeOut)
C# 
public virtual IntPtr GetStillDIB( 
   int timeOut
)
C++/CLI 
public:
virtual IntPtr GetStillDIB( 
   int timeOut
) 

Parameters

timeOut
A value containing the maximum time to wait for the image, in milliseconds.

Return Value

System.IntPtr

Example

Visual BasicCopy Code
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 17\Media"
End Class
C#Copy Code
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 capture device 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;
   }
}

Remarks

If the method succeeds, the caller must free the returned HDIB by calling the GlobalFree method. If TimeOut is -1, the method's time-out interval never elapses.

If the method fails, an error is raised. For more information, refer to the Error Codes.

Requirements

Target Platforms: Microsoft .NET Framework 2.0, Windows 2000, Windows XP, Windows Server 2003 family, Windows Server 2008 family, Windows Vista, Windows 7

See Also