VintaSoft Twain .NET SDK 14.1: Руководство для .NET разработчика
В этом разделе
    Как получить значение возможности TWAIN сканера?
    В этом разделе
    Вот C#/VB.NET код, который демонстрирует как получить информацию о всех типах пикселей, которые поддерживаются TWAIN устройством, используя свойства и методы класса Vintasoft.Twain.DeviceCapability:

    /// <summary>
    /// Get information about pixel types supported by device.
    /// </summary>
    public void GetPixelTypesInfo(Vintasoft.Twain.Device device)
    {
        // open the device
        device.Open();
    
        // get reference to the object that manipulates IPixelType capability
        Vintasoft.Twain.DeviceCapability pixelTypeCap = device.Capabilities.Find(Vintasoft.Twain.DeviceCapabilityId.IPixelType);
        // if the IPixelType capability is supported
        if (pixelTypeCap != null)
        {
            // get information about current, default and supported values of capability
    
            Vintasoft.Twain.TwainValueContainerBase capValue = pixelTypeCap.GetValue();
    
            switch (capValue.ContainerType)
            {
                case Vintasoft.Twain.TwainValueContainerType.Enum:
                    Vintasoft.Twain.TwainEnumValueContainer capValueAsEnum = (Vintasoft.Twain.TwainEnumValueContainer)capValue;
                    System.Array enumValues = capValueAsEnum.EnumValues;
    
                    // output the capability values in human readable format
                    System.Console.WriteLine(string.Format("Current pixel type: {0}", enumValues.GetValue(capValueAsEnum.ValueIndex)));
                    System.Console.WriteLine(string.Format("Default pixel type: {0}", enumValues.GetValue(capValueAsEnum.DefaultValueIndex)));
                    System.Console.Write("Supported pixel types:");
                    for (int i = 0; i < enumValues.Length; i++)
                        System.Console.Write(string.Format(" {0}", enumValues.GetValue(i)));
                    break;
            }
    
            System.Console.WriteLine();
        }
    
        // close the device
        device.Close();
    }
    
    ''' <summary>
    ''' Get information about pixel types supported by device.
    ''' </summary>
    Public Sub GetPixelTypesInfo(device As Vintasoft.Twain.Device)
            ' open the device
            device.Open()
    
            ' get reference to the object that manipulates IPixelType capability
            Dim pixelTypeCap As Vintasoft.Twain.DeviceCapability = device.Capabilities.Find(Vintasoft.Twain.DeviceCapabilityId.IPixelType)
            ' if the IPixelType capability is supported
            If pixelTypeCap IsNot Nothing Then
                    ' get information about current, default and supported values of capability
    
                    Dim capValue As Vintasoft.Twain.TwainValueContainerBase = pixelTypeCap.GetValue()
    
                    Select Case capValue.ContainerType
                            Case Vintasoft.Twain.TwainValueContainerType.[Enum]
                                    Dim capValueAsEnum As Vintasoft.Twain.TwainEnumValueContainer = DirectCast(capValue, Vintasoft.Twain.TwainEnumValueContainer)
                                    Dim enumValues As System.Array = capValueAsEnum.EnumValues
    
                                    ' output the capability values in human readable format
                                    System.Console.WriteLine(String.Format("Current pixel type: {0}", enumValues.GetValue(capValueAsEnum.ValueIndex)))
                                    System.Console.WriteLine(String.Format("Default pixel type: {0}", enumValues.GetValue(capValueAsEnum.DefaultValueIndex)))
                                    System.Console.Write("Supported pixel types:")
                                    For i As Integer = 0 To enumValues.Length - 1
                                            System.Console.Write(String.Format(" {0}", enumValues.GetValue(i)))
                                    Next
                                    Exit Select
                    End Select
    
                    System.Console.WriteLine()
            End If
    
            ' close the device
            device.Close()
    End Sub