VintaSoft Twain .NET SDK 15.3: Documentation for .NET developer
Vintasoft.WiaImageScanning Namespace / WiaAcquiredImage Class
Members Object Syntax Example Hierarchy Requirements SeeAlso
In This Topic
    WiaAcquiredImage Class
    In This Topic
    Represents an image that is acquired from WIA device.
    Object Model
    WiaAcquiredImage
    Syntax
    'Declaration
    
    Public Class WiaAcquiredImage
    
    
    public class WiaAcquiredImage
    
    
    public __gc class WiaAcquiredImage
    
    
    public ref class WiaAcquiredImage
    
    
    Example

    This C#/VB.NET code shows how to acquire images from WIA device and process images.

    
    ''' <summary>
    ''' Acquires images from WIA image scanning device and processes images.
    ''' </summary>
    Public Sub AcquireImagesFromWiaDeviceAndProcessImages()
        ' create WIA device manager
        Using deviceManager As New Vintasoft.WiaImageScanning.WiaDeviceManager()
            ' open WIA device manager
            deviceManager.Open()
    
            ' get count of WIA devices
            Dim deviceCount As Integer = deviceManager.Devices.Count
            If deviceCount = 0 Then
                System.Console.WriteLine("Devices are not found.")
                Return
            End If
    
            ' select the first WIA device
            Dim device As Vintasoft.WiaImageScanning.WiaDevice = deviceManager.Devices(0)
    
            ' open WIA device
            device.Open()
    
            Dim acquiredImage As Vintasoft.WiaImageScanning.WiaAcquiredImage = Nothing
            Do
                Try
                    ' acquire image from WIA device
                    acquiredImage = device.AcquireImageSync()
                    ' if image is received
                    If acquiredImage IsNot Nothing Then
                        System.Console.WriteLine("Image is acquired.")
    
                        ' process acquired image
                        ProcessWiaAcquiredImage(acquiredImage)
                    Else
                        ' if image is not received
                        System.Console.WriteLine("Scan is completed.")
                        Exit Try
                    End If
                Catch ex As System.Exception
                    System.Console.WriteLine(String.Format("Scan is failed: {0}", ex.Message))
                    Exit Try
                End Try
                ' while image is acquired
            Loop While acquiredImage IsNot Nothing
    
            ' close WIA device
            device.Close()
    
            ' close WIA device manager
            deviceManager.Close()
        End Using
    
        System.Console.ReadLine()
    End Sub
    
    ''' <summary>
    ''' Processes image, which is acquired from WIA device.
    ''' </summary>
    Private Sub ProcessWiaAcquiredImage(acquiredImage As Vintasoft.WiaImageScanning.WiaAcquiredImage)
        Try
            ' subscribe to the processing events
            AddHandler acquiredImage.Processing, New System.EventHandler(Of Vintasoft.WiaImageScanning.ImageProcessing.WiaAcquiredImageProcessingEventArgs)(AddressOf acquiredImage_Processing)
            AddHandler acquiredImage.Progress, New System.EventHandler(Of Vintasoft.WiaImageScanning.ImageProcessing.WiaAcquiredImageProcessingProgressEventArgs)(AddressOf acquiredImage_Progress)
            AddHandler acquiredImage.Processed, New System.EventHandler(Of Vintasoft.WiaImageScanning.ImageProcessing.WiaAcquiredImageProcessedEventArgs)(AddressOf acquiredImage_Processed)
    
            ' despeckle image
            acquiredImage.Despeckle(8, 25, 30, 400)
            ' deskew image
            acquiredImage.Deskew(Vintasoft.WiaImageScanning.ImageProcessing.WiaBorderColor.AutoDetect, 1, 1)
            ' detect border of image
            acquiredImage.DetectBorder(5)
        Catch ex As System.Exception
            System.Console.WriteLine("Error: " & ex.Message)
        Finally
            ' unsubscribe from the processing events
            RemoveHandler acquiredImage.Processing, New System.EventHandler(Of Vintasoft.WiaImageScanning.ImageProcessing.WiaAcquiredImageProcessingEventArgs)(AddressOf acquiredImage_Processing)
            RemoveHandler acquiredImage.Progress, New System.EventHandler(Of Vintasoft.WiaImageScanning.ImageProcessing.WiaAcquiredImageProcessingProgressEventArgs)(AddressOf acquiredImage_Progress)
            RemoveHandler acquiredImage.Processed, New System.EventHandler(Of Vintasoft.WiaImageScanning.ImageProcessing.WiaAcquiredImageProcessedEventArgs)(AddressOf acquiredImage_Processed)
        End Try
    End Sub
    
    ''' <summary>
    ''' Image processing is started.
    ''' </summary>
    Private Sub acquiredImage_Processing(sender As Object, e As Vintasoft.WiaImageScanning.ImageProcessing.WiaAcquiredImageProcessingEventArgs)
        System.Console.Write(e.Action.ToString() & " ")
    End Sub
    
    ''' <summary>
    ''' Image processing is in progress.
    ''' </summary>
    Private Sub acquiredImage_Progress(sender As Object, e As Vintasoft.WiaImageScanning.ImageProcessing.WiaAcquiredImageProcessingProgressEventArgs)
        System.Console.Write(".")
    End Sub
    
    ''' <summary>
    ''' Image processing is finished.
    ''' </summary>
    Private Sub acquiredImage_Processed(sender As Object, e As Vintasoft.WiaImageScanning.ImageProcessing.WiaAcquiredImageProcessedEventArgs)
        System.Console.WriteLine(" finished")
    End Sub
    
    
    
    /// <summary>
    /// Acquires images from WIA image scanning device and processes images.
    /// </summary>
    public void AcquireImagesFromWiaDeviceAndProcessImages()
    {
        // create WIA device manager
        using (Vintasoft.WiaImageScanning.WiaDeviceManager deviceManager = new Vintasoft.WiaImageScanning.WiaDeviceManager())
        {
            // open WIA device manager
            deviceManager.Open();
    
            // get count of WIA devices
            int deviceCount = deviceManager.Devices.Count;
            if (deviceCount == 0)
            {
                System.Console.WriteLine("Devices are not found.");
                return;
            }
    
            // select the first WIA device
            Vintasoft.WiaImageScanning.WiaDevice device = deviceManager.Devices[0];
    
            // open WIA device
            device.Open();
    
            Vintasoft.WiaImageScanning.WiaAcquiredImage acquiredImage = null;
            do
            {
                try
                {
                    // acquire image from WIA device
                    acquiredImage = device.AcquireImageSync();
                    // if image is received
                    if (acquiredImage != null)
                    {
                        System.Console.WriteLine("Image is acquired.");
    
                        // process acquired image
                        ProcessWiaAcquiredImage(acquiredImage);
                    }
                    // if image is not received
                    else
                    {
                        System.Console.WriteLine("Scan is completed.");
                        break;
                    }
                }
                catch (System.Exception ex)
                {
                    System.Console.WriteLine(string.Format("Scan is failed: {0}", ex.Message));
                    break;
                }
            }
            // while image is acquired
            while (acquiredImage != null);
    
            // close WIA device
            device.Close();
    
            // close WIA device manager
            deviceManager.Close();
        }
    
        System.Console.ReadLine();
    }
    
    /// <summary>
    /// Processes image, which is acquired from WIA device.
    /// </summary>
    private void ProcessWiaAcquiredImage(Vintasoft.WiaImageScanning.WiaAcquiredImage acquiredImage)
    {
        try
        {
            // subscribe to the processing events
            acquiredImage.Processing += new System.EventHandler<Vintasoft.WiaImageScanning.ImageProcessing.WiaAcquiredImageProcessingEventArgs>(acquiredImage_Processing);
            acquiredImage.Progress += new System.EventHandler<Vintasoft.WiaImageScanning.ImageProcessing.WiaAcquiredImageProcessingProgressEventArgs>(acquiredImage_Progress);
            acquiredImage.Processed += new System.EventHandler<Vintasoft.WiaImageScanning.ImageProcessing.WiaAcquiredImageProcessedEventArgs>(acquiredImage_Processed);
    
            // despeckle image
            acquiredImage.Despeckle(8, 25, 30, 400);
            // deskew image
            acquiredImage.Deskew(Vintasoft.WiaImageScanning.ImageProcessing.WiaBorderColor.AutoDetect, 1, 1);
            // detect border of image
            acquiredImage.DetectBorder(5);
        }
        catch (System.Exception ex)
        {
            System.Console.WriteLine("Error: " + ex.Message);
        }
        finally
        {
            // unsubscribe from the processing events
            acquiredImage.Processing -= new System.EventHandler<Vintasoft.WiaImageScanning.ImageProcessing.WiaAcquiredImageProcessingEventArgs>(acquiredImage_Processing);
            acquiredImage.Progress -= new System.EventHandler<Vintasoft.WiaImageScanning.ImageProcessing.WiaAcquiredImageProcessingProgressEventArgs>(acquiredImage_Progress);
            acquiredImage.Processed -= new System.EventHandler<Vintasoft.WiaImageScanning.ImageProcessing.WiaAcquiredImageProcessedEventArgs>(acquiredImage_Processed);
        }
    }
    
    /// <summary>
    /// Image processing is started.
    /// </summary>
    private void acquiredImage_Processing(object sender, Vintasoft.WiaImageScanning.ImageProcessing.WiaAcquiredImageProcessingEventArgs e)
    {
        System.Console.Write(e.Action.ToString() + " ");
    }
    
    /// <summary>
    /// Image processing is in progress.
    /// </summary>
    private void acquiredImage_Progress(object sender, Vintasoft.WiaImageScanning.ImageProcessing.WiaAcquiredImageProcessingProgressEventArgs e)
    {
        System.Console.Write(".");
    }
    
    /// <summary>
    /// Image processing is finished.
    /// </summary>
    private void acquiredImage_Processed(object sender, Vintasoft.WiaImageScanning.ImageProcessing.WiaAcquiredImageProcessedEventArgs e)
    {
        System.Console.WriteLine(" finished");
    }
    
    

    Inheritance Hierarchy

    System.Object
       Vintasoft.WiaImageScanning.WiaAcquiredImage

    Requirements

    Target Platforms: .NET 10; .NET 9; .NET 8; .NET 7; .NET 6; .NET Framework 4.8, 4.7, 4.6, 4.5, 4.0, 3.5

    See Also