VintaSoft Twain .NET SDK 15.4: Руководство для .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