VintaSoft Twain .NET SDK 15.4: Documentation for .NET developer
Vintasoft.WpfTwain Namespace / Device Class / ImageAcquiringProgressValue Property
Syntax Remarks Example Requirements SeeAlso
In This Topic
ImageAcquiringProgressValue Property (Device)
In This Topic
Gets the progress, in percents, of synchronous image acquisition process.
Syntax
'Declaration

<BrowsableAttribute(False)>
<ReadOnlyAttribute(True)>
Public ReadOnly Property ImageAcquiringProgressValue As Integer

[Browsable(False)]
[ReadOnly(True)]
public int ImageAcquiringProgressValue { get; }

Remarks

Use this property only with the AcquireModal method.

Example

This C#/VB.NET code shows how to synchronously acquire images from the device.


Public Shared Sub AcquireImageModal()
    Try
        ' create the device manager
        Using deviceManager As New Vintasoft.Twain.DeviceManager()
            ' open the device manager
            deviceManager.Open()

            ' get reference to the default device
            Dim device As Vintasoft.Twain.Device = deviceManager.DefaultDevice

            device.ShowUI = False
            device.DisableAfterAcquire = True

            ' open the device
            device.Open()

            ' set acquisition parameters
            device.TransferMode = Vintasoft.Twain.TransferMode.Memory
            device.PixelType = Vintasoft.Twain.PixelType.BW

            ' create directory for TIFF file
            Dim directoryForImages As String = System.IO.Path.GetDirectoryName(System.IO.Directory.GetCurrentDirectory())
            directoryForImages = System.IO.Path.Combine(directoryForImages, "Images")
            If Not System.IO.Directory.Exists(directoryForImages) Then
                System.IO.Directory.CreateDirectory(directoryForImages)
            End If

            Dim multipageTiffFilename As String = System.IO.Path.Combine(directoryForImages, "multipage.tif")

            ' acquire image(s) from the device
            Dim acquireModalState As Vintasoft.Twain.AcquireModalState = Vintasoft.Twain.AcquireModalState.None
            Dim imageIndex As Integer = 0
            Do
                acquireModalState = device.AcquireModal()
                Select Case acquireModalState
                    Case Vintasoft.Twain.AcquireModalState.ImageAcquiring
                        ' output current state
                        System.Console.Write(String.Format("Image is acquiring ", System.Math.Max(System.Threading.Interlocked.Increment(imageIndex), imageIndex - 1)))
                        Exit Select

                    Case Vintasoft.Twain.AcquireModalState.ImageAcquiringProgress
                        ' output current state
                        System.Console.Write(String.Format("{0}% ", device.ImageAcquiringProgressValue))
                        Exit Select

                    Case Vintasoft.Twain.AcquireModalState.ImageAcquired
                        ' save the acquired image to a file
                        device.AcquiredImage.Save(multipageTiffFilename)
                        ' dispose the acquired image
                        device.AcquiredImage.Dispose()
                        ' output current state
                        System.Console.WriteLine(String.Format("Image{0} is saved.", System.Math.Max(System.Threading.Interlocked.Increment(imageIndex), imageIndex - 1)))
                        Exit Select

                    Case Vintasoft.Twain.AcquireModalState.ScanCompleted
                        ' output current state
                        System.Console.WriteLine("Scan is completed.")
                        Exit Select

                    Case Vintasoft.Twain.AcquireModalState.ScanCanceled
                        ' output current state
                        System.Console.WriteLine("Scan is canceled.")
                        Exit Select

                    Case Vintasoft.Twain.AcquireModalState.ScanFailed
                        ' output current state
                        System.Console.WriteLine(String.Format("Scan is failed: {0}", device.ErrorString))
                        Exit Select
                End Select
            Loop While acquireModalState <> Vintasoft.Twain.AcquireModalState.None

            ' close the device
            device.Close()

            ' close the device manager
            deviceManager.Close()
        End Using
    Catch ex As Vintasoft.Twain.TwainException
        System.Console.WriteLine("Error: " + ex.Message)
    End Try
End Sub


public static void AcquireImageModal()
{
    try
    {
        // create the device manager
        using (Vintasoft.Twain.DeviceManager deviceManager = new Vintasoft.Twain.DeviceManager())
        {
            // open the device manager
            deviceManager.Open();

            // get reference to the default device
            Vintasoft.Twain.Device device = deviceManager.DefaultDevice;

            device.ShowUI = false;
            device.DisableAfterAcquire = true;

            // open the device
            device.Open();

            // set acquisition parameters
            device.TransferMode = Vintasoft.Twain.TransferMode.Memory;
            device.PixelType = Vintasoft.Twain.PixelType.BW;

            // create directory for TIFF file
            string directoryForImages = System.IO.Path.GetDirectoryName(System.IO.Directory.GetCurrentDirectory());
            directoryForImages = System.IO.Path.Combine(directoryForImages, "Images");
            if (!System.IO.Directory.Exists(directoryForImages))
                System.IO.Directory.CreateDirectory(directoryForImages);

            string multipageTiffFilename = System.IO.Path.Combine(directoryForImages, "multipage.tif");

            // acquire image(s) from the device
            Vintasoft.Twain.AcquireModalState acquireModalState = Vintasoft.Twain.AcquireModalState.None;
            int imageIndex = 0;
            do
            {
                acquireModalState = device.AcquireModal();
                switch (acquireModalState)
                {
                    case Vintasoft.Twain.AcquireModalState.ImageAcquiring:
                        // output current state
                        System.Console.Write(string.Format("Image is acquiring ", imageIndex++));
                        break;

                    case Vintasoft.Twain.AcquireModalState.ImageAcquiringProgress:
                        // output current state
                        System.Console.Write(string.Format("{0}% ", device.ImageAcquiringProgressValue));
                        break;

                    case Vintasoft.Twain.AcquireModalState.ImageAcquired:
                        // save the acquired image to a file
                        device.AcquiredImage.Save(multipageTiffFilename);
                        // dispose the acquired image
                        device.AcquiredImage.Dispose();
                        // output current state
                        System.Console.WriteLine(string.Format("Image{0} is saved.", imageIndex++));
                        break;

                    case Vintasoft.Twain.AcquireModalState.ScanCompleted:
                        // output current state
                        System.Console.WriteLine("Scan is completed.");
                        break;

                    case Vintasoft.Twain.AcquireModalState.ScanCanceled:
                        // output current state
                        System.Console.WriteLine("Scan is canceled.");
                        break;

                    case Vintasoft.Twain.AcquireModalState.ScanFailed:
                        // output current state
                        System.Console.WriteLine(string.Format("Scan is failed: {0}", device.ErrorString));
                        break;
                }
            }
            while (acquireModalState != Vintasoft.Twain.AcquireModalState.None);

            // close the device
            device.Close();

            // close the device manager
            deviceManager.Close();
        }
    }
    catch (Vintasoft.Twain.TwainException ex)
    {
        System.Console.WriteLine("Error: " + ex.Message);
    }
}

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