GetStillHDIB Method (original) (raw)
Summary
Gets a device independent bitmap (DIB) during a CaptureMode.Still capture.
Syntax
public virtual IntPtr GetStillHDIB(
int _timeOut_
)
public:
virtual System::IntPtr GetStillHDIB(
Int32 _timeOut_
)
Parameters
timeOut
A value containing the maximum time to wait for the image, in milliseconds.
Return Value
System.IntPtr
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.
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.
Example
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.GetStillHDIB(-1);
// stop the capture
capturectrl.StopCapture();
_result = (dib != null);
//free allocated global memory
Marshal.FreeHGlobal(dib);
}
catch (COMException)
{
_result = false;
}
catch (Exception)
{
_result = false;
}
}