How to process an image, which is acquired from WIA device?
 
            
                In This Topic
            
            
            
            		Here is an example that demonstrates how to acquire images from WIA device, process images and save only not blank images to a multipage TIFF file:
		
		
    
	
	    
	    
/// <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");
}
	     
	 
 
    
	
	    
	    
''' <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