В этом разделе
SANE означает "Простой доступ к сканеру" ("Scanner Access Now Easy") и представляет собой интерфейс прикладного программирования (API), который обеспечивает стандартизированный доступ к любому оборудованию для сканерования растровых изображений.
libsane - это библиотека, реализующая SANE API в Linux. В Debian/Ubuntu библиотека libsane находится по следующему пути "/usr/lib/x86_64-linux-gnu/libsane.so.1". В Fedora библиотека libsane находится по следующему пути "/usr/lib64/libsane.so.1".
VintaSoft TWAIN .NET SDK предоставляет диспетчер SANE устройств, который обеспечивает доступ к SANE устройствам с использованием библиотеки libsane.
Для работы с диспетчером SANE устройств необходимо создать экземпляр класса
SaneLocalDeviceManager. Свойство
SaneLocalDeviceManager.IsSaneAvailable позволяет проверить, доступен ли SANE (установлена ли библиотека libsane) в системе. Свойство
SaneLocalDeviceManager.SaneLibPath позволяет задать пользовательский путь к библиотеке libsane.
Вот C#/VB.NET код, который позволяет проверить установлен ли SANE в системе:
/// <summary>
/// Checks that SANE is available in the system.
/// </summary>
void CheckSane()
{
// create the SANE device manager
using (Vintasoft.Sane.SaneLocalDeviceManager deviceManager = new Vintasoft.Sane.SaneLocalDeviceManager())
{
if (deviceManager.IsSaneAvailable)
System.Console.WriteLine("SANE is available.");
else
System.Console.WriteLine("SANE is NOT available.");
}
}
''' <summary>
''' Checks that SANE is available in the system.
''' </summary>
Private Sub CheckSane()
' create the SANE device manager
Using deviceManager As New Vintasoft.Sane.SaneLocalDeviceManager()
If deviceManager.IsSaneAvailable Then
System.Console.WriteLine("SANE is available.")
Else
System.Console.WriteLine("SANE is NOT available.")
End If
End Using
End Sub
Вот C#/VB.NET код, который демонстрирует как открыть менеджер SANE устройств и отобразить информацию о доступных SANE устройствах:
/// <summary>
/// Opens SANE device manager and displays information about available local SANE image scanners.
/// </summary>
void GetSaneDevicesInfo()
{
// create SANE device manager
using (Vintasoft.Sane.SaneLocalDeviceManager deviceManager = new Vintasoft.Sane.SaneLocalDeviceManager())
{
// open device manager
deviceManager.Open();
Vintasoft.Sane.SaneLocalDeviceCollection devices = deviceManager.Devices;
// for each SANE device
for (int i = 0; i < devices.Count; i++)
{
// output the device name
System.Console.WriteLine(string.Format("Device '{0}'", devices[i].Name));
}
}
}
''' <summary>
''' Opens SANE device manager and displays information about available local SANE image scanners.
''' </summary>
Private Sub GetSaneDevicesInfo()
' create SANE device manager
Using deviceManager As New Vintasoft.Sane.SaneLocalDeviceManager()
' open device manager
deviceManager.Open()
Dim devices As Vintasoft.Sane.SaneLocalDeviceCollection = deviceManager.Devices
' for each SANE device
For i As Integer = 0 To devices.Count - 1
' output the device name
System.Console.WriteLine(String.Format("Device '{0}'", devices(i).Name))
Next
End Using
End Sub