CaptureFrame Method

Summary
Captures a single frame during a CaptureMode.ManualFrames mode capture.
Syntax
C#
C++/CLI
public virtual void CaptureFrame() 
public: 
virtual void CaptureFrame();  
Remarks

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

Example
C#
using Leadtools; 
using Leadtools.MediaFoundation; 
using LeadtoolsMediaFoundationExamples.Fixtures; 
 
 
public bool _result = false; 
public CaptureCtrlForm _form = new CaptureCtrlForm(false); 
 
public void CaptureFrameExample() 
{ 
   // reference the capture control 
   CaptureCtrl capturectrl = _form.CaptureCtrl; 
 
   // output file 
   string outFile = Path.Combine(LEAD_VARS.MediaDir, "CaptureCtrl_CaptureFrameExample.bmp"); 
 
   try 
   { 
      // set the video capture device, use your capture device name here 
      if (capturectrl.VideoDevices["USB"] == null) 
         throw new Exception("No USB video device available"); 
 
      capturectrl.VideoDevices["USB"].Selected = true; 
 
      capturectrl.TargetFormat = TargetFormatType.MP4; 
 
      // prepare the manual frames capture 
      capturectrl.ReadyCapture(CaptureMode.ManualFrames); 
 
      // do something before the capture starts 
      if (capturectrl.IsModeAvailable(CaptureMode.ManualFrames)) 
      { 
      } 
 
      // set the capture mode to manual frames 
      capturectrl.StartCapture(CaptureMode.ManualFrames); 
 
      // capture a frame 
      capturectrl.CaptureFrame(); 
 
      // stop the capture 
      capturectrl.StopCapture(); 
 
      // check for the capture file and set the result 
      if (File.Exists(outFile)) 
      { 
         Image test = Bitmap.FromFile(outFile); 
         _result = true; 
      } 
   } 
   catch (COMException) 
   { 
      _result = false; 
   } 
   catch (Exception) 
   { 
      _result = false; 
   } 
 
   // we'll loop on the state and pump messages for this example. 
   // but you should not need to if running from a Windows Forms application. 
   while (capturectrl.State == CaptureState.Running) 
      Application.DoEvents(); 
} 
 
private PixelFormat FormatFromBitCount(int bitCount) 
{ 
   switch (bitCount) 
   { 
      case 8: 
         return PixelFormat.Format8bppIndexed; 
      case 16: 
         return PixelFormat.Format16bppRgb555; 
      case 32: 
         return PixelFormat.Format32bppRgb; 
      case 48: 
         return PixelFormat.Format48bppRgb; 
      case 24: 
         return PixelFormat.Format24bppRgb; 
   } 
   throw new Exception("Unrecognized bit count"); 
} 
 
private int GetBitmapSize(Bitmap bmp, int bitCount) 
{ 
   int pixelSize = (int)Math.Log((double)bitCount); 
   return (bmp.Width * pixelSize + pixelSize & ~3) * bmp.Height; 
} 
 
private int GetBitmapScanRowSize(int bmpSize, int stride, int width) 
{ 
   return bmpSize / (stride / width); 
} 
 
public void CaptureFrame_Helper(object sender, EventArgs e) 
{ 
   // set result 
   _result = true; 
} 
 
static class LEAD_VARS 
{ 
   public const string MediaDir = @"C:\LEADTOOLS23\Media"; 
} 
Requirements

Target Platforms

Help Version 23.0.2024.2.29
Products | Support | Contact Us | Intellectual Property Notices
© 1991-2024 LEAD Technologies, Inc. All Rights Reserved.

Leadtools.MediaFoundation Assembly
Products | Support | Contact Us | Intellectual Property Notices
© 1991-2023 LEAD Technologies, Inc. All Rights Reserved.