LEADTOOLS Multimedia (Leadtools.MediaFoundation assembly)

CaptureFrame Method

Show in webframe
Example 



Captures a single frame during a CaptureMode.ManualFrames mode capture.
Syntax
'Declaration
 
Public Overridable Sub CaptureFrame() 
'Usage
 
Dim instance As CaptureCtrl
 
instance.CaptureFrame()
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
Copy Code  
Imports Leadtools
Imports Leadtools.MediaFoundation
Imports LeadtoolsMediaFoundationExamples.Fixtures

Public _result As Boolean = False
Public _form As New CaptureCtrlForm()
Public Sub CaptureFrameExample()
    ' reference the capture control
    Dim capturectrl As CaptureCtrl = _form.CaptureCtrl

    ' output file
    Dim outFile As String = Path.Combine(LEAD_VARS.MediaDir, "CaptureCtrl_CaptureFrameExample.bmp")

    Try
        ' set the video capture device, use your capture device name here
        If capturectrl.VideoDevices("Logitech") Is Nothing Then
            Throw New Exception("No Logitech video device available")
        End If

        capturectrl.VideoDevices("Logitech").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) Then
        End If

        ' 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) Then
            Dim test As Image = Bitmap.FromFile(outFile)
            _result = True
        End If
    Catch generatedExceptionName As COMException
        _result = False
    Catch generatedExceptionName As Exception
        _result = False
    End Try

    ' 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()
    End While
End Sub

Private Function FormatFromBitCount(ByVal bitCount As Integer) As PixelFormat
    Select Case 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
    End Select
    Throw New Exception("Unrecognized bit count")
End Function

Private Function GetBitmapSize(ByVal bmp As Bitmap, ByVal bitCount As Integer) As Integer
    Dim pixelSize As Integer = CInt(Math.Log(CDbl(bitCount)))
    Return (bmp.Width * pixelSize + pixelSize And Not 3) * bmp.Height
End Function

Private Function GetBitmapScanRowSize(ByVal bmpSize As Integer, ByVal stride As Integer, ByVal width As Integer) As Integer
    Return bmpSize / (stride / width)
End Function

Public Sub CaptureFrame_Helper(ByVal sender As Object, ByVal e As EventArgs)
    ' set result
    _result = True
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.MediaFoundation;
using LeadtoolsMediaFoundationExamples.Fixtures;

public bool _result = false;
public CaptureCtrlForm _form = new CaptureCtrlForm();
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["Logitech"] == null)
         throw new Exception("No Logitech video device available");

      capturectrl.VideoDevices["Logitech"].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:\Program Files (x86)\LEAD Technologies\LEADTOOLS 18\Media";
}
Requirements

Target Platforms

See Also

Reference

CaptureCtrl Class
CaptureCtrl Members

 

 


Products | Support | Contact Us | Copyright Notices
© 2006-2014 All Rights Reserved. LEAD Technologies, Inc.

Leadtools.MediaFoundation requires a Multimedia or Multimedia Suite license and unlock key. For more information, refer to: LEADTOOLS Toolkit Features