VintaSoft Twain .NET SDK v10.2
Vintasoft.Twain Namespace / ExtendedImageInfo Class
Members Example




In This Topic
    ExtendedImageInfo Class
    In This Topic
    Class that contains extended information about the acquired image.
    Object Model
    ExtendedImageInfo ClassTwainValueContainerBase Class
    Syntax
    'Declaration
     
    Public NotInheritable Class ExtendedImageInfo 
    'Usage
     
    Dim instance As ExtendedImageInfo
    public sealed class ExtendedImageInfo 
    public __gc __sealed class ExtendedImageInfo 
    public ref class ExtendedImageInfo sealed 
    Example
    This example shows how to get information about barcodes found on acquired image.
    Public Sub GetExtendedImageInfo()
        Using deviceManager As New DeviceManager()
            Try
                ' open the device manager
                deviceManager.Open()
                
                deviceManager.ShowDefaultDeviceSelectionDialog()
                
                ' get reference to the default device
                Dim device As Device = deviceManager.DefaultDevice
                
                ' specify that device UI must not be used
                device.ShowUI = False
                ' specify that device must be closed after scan
                device.DisableAfterAcquire = True
                
                ' open the device
                device.Open()
                
                ' specify that image info is necessary
                device.ExtendedImageInfo.Add(New ExtendedImageInfo(ExtendedImageInfoId.BarcodeCount))
                device.ExtendedImageInfo.Add(New ExtendedImageInfo(ExtendedImageInfoId.BarcodeType))
                device.ExtendedImageInfo.Add(New ExtendedImageInfo(ExtendedImageInfoId.BarcodeTextLength))
                device.ExtendedImageInfo.Add(New ExtendedImageInfo(ExtendedImageInfoId.BarcodeText))
                
                ' acquire images from device
                Dim acquireModalState1 As AcquireModalState = AcquireModalState.None
                Do
                    acquireModalState1 = device.AcquireModal()
                
                    Select Case acquireModalState1
                        Case AcquireModalState.ImageAcquired
                
                            ' get information about barcode count
                            Dim barcodeCountInfo As ExtendedImageInfo = device.ExtendedImageInfo(0)
                            ' if value is valid
                            If barcodeCountInfo.IsValueValid Then
                                ' get container of value
                                Dim valueContainer As TwainValueContainerBase = barcodeCountInfo.Value
                                Dim oneValueContainer As TwainOneValueContainer = TryCast(valueContainer, TwainOneValueContainer)
                                ' if container is valid
                                If oneValueContainer IsNot Nothing Then
                                    ' get barcode count
                                    Dim barcodeCountValue As Integer = CInt(oneValueContainer.GetAsUInt32())
                
                                    ' get information about barcode type and text
                                    Dim barcodeTypeInfo As ExtendedImageInfo = device.ExtendedImageInfo(1)
                                    Dim barcodeTextLengthInfo As ExtendedImageInfo = device.ExtendedImageInfo(2)
                                    Dim barcodeTextInfo As ExtendedImageInfo = device.ExtendedImageInfo(3)
                
                                    Dim infoString As String
                
                                    ' if barcode is found
                                    If barcodeCountValue = 1 Then
                                        ' add information about barcode type to the info string
                                        If barcodeTypeInfo.IsValueValid Then
                                            Dim barcodeTypeValue As TwainOneValueContainer = TryCast(barcodeTypeInfo.Value, TwainOneValueContainer)
                                            infoString = "BarcodeType=" + barcodeTypeValue.Value + " "
                                        Else
                                            infoString = "BarcodeType=Undefined "
                                        End If
                
                                        ' add information about barcode text to the info string
                                        If barcodeTextInfo.IsValueValid Then
                                            Dim barcodeTextValue As TwainOneValueContainer = TryCast(barcodeTextInfo.Value, TwainOneValueContainer)
                                            infoString = "BarcodeText='" + barcodeTextValue.Value + "'"
                                        Else
                                            infoString = "BarcodeText=Undefined "
                                        End If
                
                                        ' write barcode info to the console
                                        Console.WriteLine(infoString)
                                    Else
                                        ' if barcodes are found
                                        For i As Integer = 0 To barcodeCountValue - 1
                                            ' add information about barcode type to the info string
                                            If barcodeTypeInfo.IsValueValid Then
                                                Dim barcodeTypeValue As TwainArrayValueContainer = TryCast(barcodeTypeInfo.Value, TwainArrayValueContainer)
                                                infoString = "BarcodeType=" + barcodeTypeValue.Values.GetValue(i) + " "
                                            Else
                                                infoString = "BarcodeType=Undefined "
                                            End If
                
                                            ' add information about barcode text to the info string
                                            If barcodeTextInfo.IsValueValid Then
                                                Dim barcodeTextValue As TwainArrayValueContainer = TryCast(barcodeTextInfo.Value, TwainArrayValueContainer)
                                                infoString = "BarcodeText='" + barcodeTextValue.Values.GetValue(i) + "'"
                                            Else
                                                infoString = "BarcodeText=Undefined "
                                            End If
                
                                            ' write barcode info to the console
                                            Console.WriteLine(infoString)
                                        Next
                                    End If
                                End If
                            End If
                
                            ' if acquired image is present (Native or Memory transfer mode is used)
                            If device.AcquiredImage IsNot Nothing Then
                                ' dispose the acquired image
                                device.AcquiredImage.Dispose()
                            End If
                
                            Exit Select
                    End Select
                Loop While acquireModalState1 <> AcquireModalState.None
                
                ' close the device
                device.Close()
                
                ' close the device manager
                deviceManager.Close()
            Catch ex As TwainException
                Console.WriteLine("Error: " + ex.Message)
                Console.ReadLine()
            End Try
        End Using
    End Sub
    public void GetExtendedImageInfo()
    {
        using (DeviceManager deviceManager = new DeviceManager())
        {
            try
            {
                // open the device manager
                deviceManager.Open();
                
                deviceManager.ShowDefaultDeviceSelectionDialog();
                
                // get reference to the default device
                Device device = deviceManager.DefaultDevice;
                
                // specify that device UI must not be used
                device.ShowUI = false;
                // specify that device must be closed after scan
                device.DisableAfterAcquire = true;
                
                // open the device
                device.Open();
                
                // specify that image info is necessary
                device.ExtendedImageInfo.Add(new ExtendedImageInfo(ExtendedImageInfoId.BarcodeCount));
                device.ExtendedImageInfo.Add(new ExtendedImageInfo(ExtendedImageInfoId.BarcodeType));
                device.ExtendedImageInfo.Add(new ExtendedImageInfo(ExtendedImageInfoId.BarcodeTextLength));
                device.ExtendedImageInfo.Add(new ExtendedImageInfo(ExtendedImageInfoId.BarcodeText));
                
                // acquire images from device
                AcquireModalState acquireModalState = AcquireModalState.None;
                do
                {
                    acquireModalState = device.AcquireModal();
                
                    switch (acquireModalState)
                    {
                        case AcquireModalState.ImageAcquired:
                
                            // get information about barcode count
                            ExtendedImageInfo barcodeCountInfo = device.ExtendedImageInfo[0];
                            // if value is valid
                            if (barcodeCountInfo.IsValueValid)
                            {
                                // get container of value
                                TwainValueContainerBase valueContainer = barcodeCountInfo.Value;
                                TwainOneValueContainer oneValueContainer = valueContainer as TwainOneValueContainer;
                                // if container is valid
                                if (oneValueContainer != null)
                                {
                                    // get barcode count
                                    int barcodeCountValue = (int)oneValueContainer.GetAsUInt32();
                
                                    // get information about barcode type and text
                                    ExtendedImageInfo barcodeTypeInfo = device.ExtendedImageInfo[1];
                                    ExtendedImageInfo barcodeTextLengthInfo = device.ExtendedImageInfo[2];
                                    ExtendedImageInfo barcodeTextInfo = device.ExtendedImageInfo[3];
                
                                    string infoString;
                
                                    // if barcode is found
                                    if (barcodeCountValue == 1)
                                    {
                                        // add information about barcode type to the info string
                                        if (barcodeTypeInfo.IsValueValid)
                                        {
                                            TwainOneValueContainer barcodeTypeValue = barcodeTypeInfo.Value as TwainOneValueContainer;
                                            infoString = "BarcodeType=" + barcodeTypeValue.Value + " ";
                                        }
                                        else
                                            infoString = "BarcodeType=Undefined ";
                
                                        // add information about barcode text to the info string
                                        if (barcodeTextInfo.IsValueValid)
                                        {
                                            TwainOneValueContainer barcodeTextValue = barcodeTextInfo.Value as TwainOneValueContainer;
                                            infoString = "BarcodeText='" + barcodeTextValue.Value + "'";
                                        }
                                        else
                                            infoString = "BarcodeText=Undefined ";
                
                                        // write barcode info to the console
                                        Console.WriteLine(infoString);
                                    }
                                    // if barcodes are found
                                    else
                                    {
                                        for (int i = 0; i < barcodeCountValue; i++)
                                        {
                                            // add information about barcode type to the info string
                                            if (barcodeTypeInfo.IsValueValid)
                                            {
                                                TwainArrayValueContainer barcodeTypeValue = barcodeTypeInfo.Value as TwainArrayValueContainer;
                                                infoString = "BarcodeType=" + barcodeTypeValue.Values.GetValue(i) + " ";
                                            }
                                            else
                                                infoString = "BarcodeType=Undefined ";
                
                                            // add information about barcode text to the info string
                                            if (barcodeTextInfo.IsValueValid)
                                            {
                                                TwainArrayValueContainer barcodeTextValue = barcodeTextInfo.Value as TwainArrayValueContainer;
                                                infoString = "BarcodeText='" + barcodeTextValue.Values.GetValue(i) + "'";
                                            }
                                            else
                                                infoString = "BarcodeText=Undefined ";
                
                                            // write barcode info to the console
                                            Console.WriteLine(infoString);
                                        }
                                    }
                                }
                            }
                
                            // if acquired image is present (Native or Memory transfer mode is used)
                            if (device.AcquiredImage != null)
                                // dispose the acquired image
                                device.AcquiredImage.Dispose();
                
                            break;
                    }
                }
                while (acquireModalState != AcquireModalState.None);
                
                // close the device
                device.Close();
                
                // close the device manager
                deviceManager.Close();
            }
            catch (TwainException ex)
            {
                Console.WriteLine("Error: " + ex.Message);
                Console.ReadLine();
            }
        }
    }
    Inheritance Hierarchy

    System.Object
       Vintasoft.Twain.ExtendedImageInfo

    Requirements

    Target Platforms: Windows 8, Windows 7, Windows Vista, Windows XP, Windows Server 2012, Windows Server 2008, Windows Server 2003

    See Also