Image Property (ImageViewer)
Gets or sets the focused image that must be displayed in the
ImageViewer.
This property clears image collection of this image viewer and adds image, which is specified by this property, to the image collection of this image viewer.
This C#/VB.NET code shows how to capture images from camera and view captured images in ImageViewer.
''' <summary>
''' Image capture source.
''' </summary>
Private _imageCaptureSource As Vintasoft.Imaging.Media.ImageCaptureSource
''' <summary>
''' Initializes a new instance of the <see cref="MainForm"/> class.
''' </summary>
Public Sub New()
InitializeComponent()
' get available image capture devices
Dim availableDevices As System.Collections.ObjectModel.ReadOnlyCollection(Of Vintasoft.Imaging.Media.ImageCaptureDevice) = Vintasoft.Imaging.Media.ImageCaptureDeviceConfiguration.GetCaptureDevices()
' create new image capture source
_imageCaptureSource = New Vintasoft.Imaging.Media.ImageCaptureSource()
AddHandler _imageCaptureSource.CaptureCompleted, New System.EventHandler(Of Vintasoft.Imaging.Media.ImageCaptureCompletedEventArgs)(AddressOf ImageCaptureSource_CaptureCompleted)
' if there are available devices
If availableDevices.Count <> 0 Then
' use the first image capture device
_imageCaptureSource.CaptureDevice = availableDevices(0)
End If
AddHandler Shown, New System.EventHandler(AddressOf MainForm_Shown)
AddHandler FormClosed, New System.Windows.Forms.FormClosedEventHandler(AddressOf MainForm_FormClosed)
End Sub
''' <summary>
''' Starts capturing from camera.
''' </summary>
Private Sub MainForm_Shown(sender As Object, e As System.EventArgs)
' if capture device is empty
If _imageCaptureSource.CaptureDevice IsNot Nothing Then
' start the image capture source
_imageCaptureSource.Start()
' initialize new image capture request
_imageCaptureSource.CaptureAsync()
End If
End Sub
''' <summary>
''' Image is captured.
''' </summary>
Private Sub ImageCaptureSource_CaptureCompleted(sender As Object, e As Vintasoft.Imaging.Media.ImageCaptureCompletedEventArgs)
' save reference to the previously captured image
Dim oldImage As Vintasoft.Imaging.VintasoftImage = imageViewer1.Image
' get captured image and show captured image in the image viewer
imageViewer1.Image = e.GetCapturedImage()
' if previously captured image exists
If oldImage IsNot Nothing Then
' dispose previously captured image
oldImage.Dispose()
End If
' if capture source is started
If _imageCaptureSource.State = Vintasoft.Imaging.Media.ImageCaptureState.Started Then
' initialize new image capture request
_imageCaptureSource.CaptureAsync()
End If
End Sub
''' <summary>
''' Form is closed.
''' </summary>
Private Sub MainForm_FormClosed(sender As Object, e As System.Windows.Forms.FormClosedEventArgs)
' stop the image capture source
_imageCaptureSource.[Stop]()
End Sub
/// <summary>
/// Image capture source.
/// </summary>
Vintasoft.Imaging.Media.ImageCaptureSource _imageCaptureSource;
/// <summary>
/// Initializes a new instance of the <see cref="MainForm"/> class.
/// </summary>
public MainForm()
{
InitializeComponent();
// get available image capture devices
System.Collections.ObjectModel.ReadOnlyCollection<Vintasoft.Imaging.Media.ImageCaptureDevice> availableDevices =
Vintasoft.Imaging.Media.ImageCaptureDeviceConfiguration.GetCaptureDevices();
// create new image capture source
_imageCaptureSource = new Vintasoft.Imaging.Media.ImageCaptureSource();
_imageCaptureSource.CaptureCompleted +=
new System.EventHandler<Vintasoft.Imaging.Media.ImageCaptureCompletedEventArgs>(ImageCaptureSource_CaptureCompleted);
// if there are available devices
if (availableDevices.Count != 0)
{
// use the first image capture device
_imageCaptureSource.CaptureDevice = availableDevices[0];
}
Shown += new System.EventHandler(MainForm_Shown);
FormClosed += new System.Windows.Forms.FormClosedEventHandler(MainForm_FormClosed);
}
/// <summary>
/// Starts capturing from camera.
/// </summary>
private void MainForm_Shown(object sender, System.EventArgs e)
{
// if capture device is empty
if (_imageCaptureSource.CaptureDevice != null)
{
// start the image capture source
_imageCaptureSource.Start();
// initialize new image capture request
_imageCaptureSource.CaptureAsync();
}
}
/// <summary>
/// Image is captured.
/// </summary>
private void ImageCaptureSource_CaptureCompleted(object sender, Vintasoft.Imaging.Media.ImageCaptureCompletedEventArgs e)
{
// save reference to the previously captured image
Vintasoft.Imaging.VintasoftImage oldImage = imageViewer1.Image;
// get captured image and show captured image in the image viewer
imageViewer1.Image = e.GetCapturedImage();
// if previously captured image exists
if (oldImage != null)
{
// dispose previously captured image
oldImage.Dispose();
}
// if capture source is started
if (_imageCaptureSource.State == Vintasoft.Imaging.Media.ImageCaptureState.Started)
{
// initialize new image capture request
_imageCaptureSource.CaptureAsync();
}
}
/// <summary>
/// Form is closed.
/// </summary>
private void MainForm_FormClosed(object sender, System.Windows.Forms.FormClosedEventArgs e)
{
// stop the image capture source
_imageCaptureSource.Stop();
}
Target Platforms: .NET9; .NET 8; .NET 7; .NET 6; .NET Framework 4.8, 4.7, 4.6, 4.5, 4.0, 3.5