VintaSoft Twain ActiveX v6.0
In This Topic
    Acquire images synchronously
    In This Topic
    VintaSoft Twain ActiveX allows to acquire images from the scanner synchronously (in a modal loop).

    Here is to do list for acquiring images synchronously:
    1. Open TWAIN device manager.
    2. Select TWAIN device.
    3. Open TWAIN device.
    4. Set the scanning settings.
    5. Start the acquisition modal loop.
    6. Retrieve acquired images one by one while the Device_AcquireImageModal method returns True.
    7. Break loop if the Device_AcquireImageModal method returns False.

    Example: Here is an example that shows how to acquire images in modal loop using scanner driver user interface and save acquired images into multipage TIFF file:
    Private VSTwain1 As New VintaSoftTwain()
    
    
    ''' <summary>
    ''' Scans images synchronously.
    ''' </summary>
    Public Sub ScanImages()
        ' specify name of scanning application
        VSTwain1.DeviceManager_ApplicationProductName = "MyTwainApplication"
        ' 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
        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
    
        ' run synchronous image acquisition
        Dim acquireModalState1 As VSTwainLib.ACQUIREMODALSTATE = ACQUIREMODALSTATE.AcquireModalState_None
        Do
            acquireModalState1 = VSTwain1.Device_AcquireImageModal()
            Select Case acquireModalState1
                Case ACQUIREMODALSTATE.AcquireModalState_ImageAcquired
                    Console.WriteLine("Image is acquired.")
    
                    ' save acquired image to TIFF file
                    If Not VSTwain1.AcquiredImages_Save(0, "test.tif") Then
                        Console.WriteLine(VSTwain1.errorString)
                    End If
    
                    ' delete image from internal image buffer
                    VSTwain1.AcquiredImages_Clear()
                    Exit Select
    
                Case ACQUIREMODALSTATE.AcquireModalState_ScanCompleted
                    Console.WriteLine("Scan is completed.")
                    Exit Select
    
                Case ACQUIREMODALSTATE.AcquireModalState_ScanCanceled
                    Console.WriteLine("Scan is canceled.")
                    Exit Select
    
                Case ACQUIREMODALSTATE.AcquireModalState_ScanFailed
                    Console.WriteLine(String.Format("Scan is failed: {0}.", VSTwain1.errorString))
                    Exit Select
            End Select
        Loop While acquireModalState1 <> ACQUIREMODALSTATE.AcquireModalState_None
    End Sub