VintaSoft Twain ActiveX v6.0
In This Topic
    How to process acquired image
    In This Topic
    Example: Here is an example that shows how to acquire images from the device, process them and save to multipage TIFF file only not blank images.
    Private VSTwain1 As New VintaSoftTwain()
    
    
    ''' <summary>
    ''' Scans images asynchronously.
    ''' </summary>
    Private Sub StartScan()
        ' open the device manager
        If Not VSTwain1.DeviceManager_Open() Then
            Console.WriteLine(VSTwain1.errorString)
            Exit Sub
        End If
    
        ' select device using standard device selection dialog
        VSTwain1.DeviceManager_ShowDefaultDeviceSelectionDialog()
    
        ' open the device manager
        If Not VSTwain1.Device_Open() Then
            Console.WriteLine(VSTwain1.errorString)
            Exit Sub
        End If
    
        ' specify that device UI must be shown
        VSTwain1.Device_ShowUI = True
    
        ' specify that acquired image must be added to an existing TIFF file
        VSTwain1.TiffEncoder_MultiPage = True
    
        ' subscribe to the device events
        AddHandler VSTwain1.DeviceImageAcquired, AddressOf VSTwain1_ImageAcquired
        AddHandler VSTwain1.DeviceScanCompleted, AddressOf VSTwain1_ScanCompleted
        AddHandler VSTwain1.DeviceScanFailed, AddressOf VSTwain1_ScanFailed
        AddHandler VSTwain1.DeviceScanCanceled, AddressOf VSTwain1_ScanCanceled
    
        ' acquire images asynchronously
        VSTwain1.Device_AcquireImage()
    End Sub
    
    Private Sub VSTwain1_ImageAcquired()
        ' get index of acquired image
        Dim imageIndex As Integer = VSTwain1.AcquiredImages_Count - 1
    
        ' despeckle image
        If Not VSTwain1.AcquiredImages_Despeckle(imageIndex, 8, 25, 30, 400) Then
            Console.WriteLine(VSTwain1.errorString)
        Else
            ' deskew image
            If Not VSTwain1.AcquiredImages_Deskew(imageIndex, IMAGEPROCESSINGBORDERCOLOR.IMAGEPROCESSINGBORDERCOLOR_AutoDetect, 5, 5) Then
                Console.WriteLine(VSTwain1.errorString)
            Else
                ' remove image border
                If Not VSTwain1.AcquiredImages_DetectBorder(imageIndex, 5) Then
                    Console.WriteLine(VSTwain1.errorString)
                End If
            End If
        End If
    
        Dim currentNoiseLevel As Single
        ' if image is NOT blank
        If Not VSTwain1.AcquiredImages_IsBlank(imageIndex, 0.001, currentNoiseLevel) Then
            ' add image to TIFF file
            VSTwain1.AcquiredImages_Save(imageIndex, "d:\test.tif")
        End If
    End Sub
    
    Private Sub VSTwain1_ScanCompleted()
        Console.WriteLine("Scan is completed.")
    End Sub
    
    Private Sub VSTwain1_ScanFailed(errorString As String)
        Console.WriteLine(String.Format("Scan is failed: {0}.", errorString))
    End Sub
    
    Private Sub VSTwain1_ScanCanceled()
        Console.WriteLine("Scan is canceled.")
    End Sub