Введение

Scanner Access Now Easy (SANE) – это программный интерфейс прикладного программирования (API) с открытым исходным кодом, обеспечивающий стандартизированный доступ к любому оборудованию для сканирования растровых изображений (планшетные сканеры, ручные сканеры, видео- и фотокамеры, платы видеозахвата и т. д.). API SANE находится в общественном достоянии. Он широко используется в Linux.

Архитектура

SANE отличается от TWAIN тем, что чётко разделен на «фронтенды» (пользовательские программы) и «бэкенды» (драйверы сканера). В то время как драйвер TWAIN управляет как пользовательским интерфейсом, так и обменом данными с аппаратным обеспечением сканера, драйвер SANE предоставляет только интерфейс с аппаратным обеспечением и описывает набор «опций», управляющих каждым сканированием. Эти опции задают параметры, такие как разрешение сканирования, область сканирования, цветовая модель и т. д. Каждая опция имеет имя и информацию о её типе, единицах измерения и диапазоне или возможных значениях (например, перечисляемый список). По соглашению существует несколько «общеизвестных» опций, которые фронтенды могут предоставлять с помощью удобного графического интерфейса, например, область сканирования можно задать, перетаскивая прямоугольную рамку по изображению предварительного просмотра. Другие опции могут быть представлены с использованием элементов графического интерфейса, соответствующих их типу, например, ползунков, выпадающих списков и т. п. Одним из следствий такого разделения является простота реализации сетевого сканирования без специальной обработки во фронтендах или бэкендах. На хосте со сканером работает демон `saned`, обрабатывающий сетевые запросы. На клиентских машинах «сетевой» бэкенд (драйвер) подключается к удалённому хосту для получения опций сканера и выполнения предварительного просмотра и сканирования. Демон `saned` выступает в роли локального фронтенда, но просто передаёт запросы и данные между сетевыми соединениями и локальным сканером. Аналогично, «сетевой» бэкенд передаёт запросы и данные между локальным фронтендом и удалённым хостом. Также возможны различные типы автоматического пакетного сканирования с минимальной поддержкой, необходимой в бэкенде (драйвере). Многие сканеры поддерживают подключение устройств автоматической подачи документов, позволяющих автоматически сканировать большое количество листов бумаги последовательно. Используя SANE API, фронтенд должен просто «воспроизводить» один и тот же набор опций для каждого сканирования, активируя подачу документов между сканированиями для загрузки следующего листа бумаги. Фронтенд должен получить набор опций от пользователя только один раз.

Графические пользовательские интерфейсы

Разработано несколько пользовательских интерфейсов для интеграции SANE с удобным способом управления.

gscan2pdf

gscan2pdf — это интерфейс для сканирования документов в PDF в среде GNOME, использующий SANE для взаимодействия со сканером. Программа распространяется по лицензии GPL. Она включает в себя стандартные инструменты редактирования, например, для поворота или обрезки страниц. Также поддерживается распознавание текста (OCR) с помощью нескольких дополнительных инструментов и сохранение PDF с возможностью поиска. При сохранении PDF-файлы могут быть дополнительно сжаты.

Простой сканирование

Simple Scan — это упрощенный графический интерфейс, использующий SANE, разработанный для более удобного использования и лучшей интеграции с рабочим столом GNOME по сравнению с XSane. Изначально он был создан для Ubuntu и поддерживается Робертом Анцеллом из Canonical Ltd. для Linux. Simple Scan впервые был представлен в составе Ubuntu 10.04 Lucid Lynx и также используется в Lubuntu (до Lubuntu 18.04 LTS) и Xubuntu. В настоящее время он является частью проекта GNOME.

Сканлит

Skanlite – это простое приложение для сканирования изображений, использующее в качестве основы KSane. Каре Сарс – ведущий разработчик. В KDE 4 Skanlite заменил Kooka из KDE 3 как приложение для сканирования по умолчанию в KDE. Skanlite основан на libksane – интерфейсе, предоставляемом KDE для библиотек SANE, предназначенном для управления планшетными сканерами. Он также поддерживает работу с сетевыми сканерами.

СвингСен

SwingSane — это кроссплатформенный Java-интерфейс для SANE, разработанный и поддерживаемый Роландом Квастом. Он доступен для Microsoft Windows, Linux, Mac OS X и распространяется под лицензией Apache 2.0. Исходный код проекта также можно адаптировать для использования в существующем Swing-приложении.

XSane

XSane — графический интерфейс для SANE, разработанный Оливером Раухом. Он доступен для Microsoft Windows, Linux, UNIX и OS/2 и распространяется по лицензии GNU General Public License (GPL). Версия для Windows позволяет компьютеру под управлением Windows получить доступ к сканеру, подключенному к сетевому компьютеру Unix, OS/2 или Mac OS X, но обычно не к локальному компьютеру с Windows. Работа с некоторыми моделями сканеров, подключенными локально, возможна только с использованием "полных" версий бэкендов SANE.