Scanner Access Now Easy (SANE) är ett applikationsprogrammeringsgränssnitt (API) som används för att styra skannrar och kameror. Under användning kan kommandoradsapplikationen scanimage användas för att snabbt och tillförlitligt skicka en skannerkommandon för att utföra ett antal användbara funktioner.
Så här får du ut det mesta av SANE för att skanna dokument och foton.
Skaffa dig SANNE nu
API:t kan installeras med din pakethanterare. Till exempel, i ett Debian-system:
sudo apt install sane
…installerar SANE API och tillhandahåller kommandoradsapplikationen scanimage. (Den installerar också front-end-verktygen xscanimage, scanadf och xcam). Att köra följande kommando visar alla tillgängliga alternativ:
scanimage -h
Nu är det viktigt att notera att du kan skicka API-kommandon tillsammans med skannerspecifika kommandon, allt på samma kommandorad. Dessutom produktionen av -h kan vara lite förvirrande på grund av att både API-alternativ och skanneralternativ bara skrivs ut till terminalen i en sammanlänkade stil.
Om ingen skanner upptäcks får du bara API-alternativen. Om en skanner upptäcks kan du uppleva en märkbar tidsfördröjning medan skannerenhetens information hämtas, skickas till API:t och formateras. Kommandot ser ut att stanna, men vänta bara så slutar det.
Efter att ha nämnt det, om du bara vill ha enhetsalternativen (“backend”-alternativ för själva skannern) kan du använda -A alternativ:
scanimage -A
Observera att för den här artikeln används SANE version 1.0.14-15 som exempel. Din specifika version kan variera och ha något olika alternativ. Om du har frågor, kör bara scanimage med -h alternativ.
Naturligtvis kommer varje skanner att ha sin egen specifika uppsättning möjliga alternativ, så experimentera med alla medel för att förfina kommandona du skickar för att få bästa resultat.
Enkla och enkla SANE-kommandon
Ja, lätt och enkelt är vad vi alla vill ha. Du måste börja någonstans, och det enklaste kommandot du kan använda för att skanna något är:
scanimage > scan_out
Detta kommer att fungera om din skanner upptäcks av API:et. Utdata skickas direkt till standard ut i detta fall och omdirigeras sedan till filen, scan_out. Bildformatets standard är PNM, och standardläget (t.ex. linjeteckning, monokrom eller färg) bestäms av skannern. Om skannern inte upptäcks får du denna utdata (eller liknande):
scanimage: no SANE devices found
Du kommer också att få ett informationsmeddelande om att utdataformatet inte är inställt. Detta beror bara på att bildformatets standard är pnm. Detta kan ändras till TIFF, PNG eller JPEG.
Output format is not set, using pnm as a default.
Specificering av utdatafil
Standardutgången kan omdirigeras till en fil med hjälp av > eller så kan du utfärda ett uttryckligt alternativ för att ange namnet och den fullständiga sökvägen till utdatafilen, till exempel:
scanimage -o scan_out.png
I det här fallet kommer API:et att mata ut en bild i PNG-format.
Lista och använda enheter
Vill du vara säker på att din skanner upptäcks av SANE? Kör detta kommando:
scanimage -L
Det kommer att lista alla enheter som upptäckts. Om en enskild enhet har både ett LAN anslutet och en USB-anslutning, kommer den att lista dem på separata rader.
Till exempel kan en Epson WorkForce WF-3640 listas så här:
device `epson2:net:192.168.1.26' is a Epson PID 08B8 flatbed scanner
device `epson2:libusb:001:005' is a Epson PID 08B8 flatbed scanner
I det här fallet kan du använda antingen som adress för att skicka och ta emot data:
scanimage -d epson2:net:192.168.1.26 -o scan_out.png
eller
scanimage -d epson2:libusb:001:005 -o scan_out.png
Observera att om du kopplar ur och återansluter USB till en annan port kommer USB-adressen att ändras. I så fall måste du se till att din enhetsadress är densamma som den nya som skrivs ut när den listas igen.
Ställ in ett annat bildformat
Om du vill ha ett annat bildformat kan du ge samma kommando så här:
scanimage -o scan_out.tiff
SANE kommer att försöka gissa formatet baserat på filtillägget. Formatet kan också uttryckligen ställas in med:
scanimage --format=tiff -o scan_out.tiff
eller till och med detta:
scanimage --format=tiff > scan_out
Batch-kommandon
Tja, vad mer kan du få ut av API:t? Här är vad du kan få: batchkommandon för att styra en automatisk dokumentmatare (ADF) för att skanna sidor i sekvens.
Även om skannern endast kan producera bildformat, kan dessa även konverteras till text via en OCR-applikation (Optical Character Recognition), som gocr.
Observera att för att skapa ett rimligt detaljerat dokument för dokumentbevarande eller en OCR-konvertering, kan du behöva skicka skannerspecifika kommandon. Dessa kommer att noteras nedan.
Ett exempel på batchbearbetning
Du kommer att vilja använda olika format beroende på syftet med slutresultatet. Till exempel, om OCR-applikationen du tänker använda endast accepterar PNM-bilder, bör ditt bildfilformat vara PNM.
Här är ett exempel på att skicka ett kommando för att skanna en sida med utskriven text för att konverteras av ett OCR-program som accepterar pnm-bilder. I det här kommandot är de skannerspecifika kommandona –mode, –resolution och –source:
scanimage --batch=document-A-%d.pnm --format=pnm --batch-count=1 --mode Lineart --resolution 1200 --source Automatic
Eftersom dessa är skannerkommandon och inte SANE API, kommer de att vara olika beroende på märke och modell och kan kräva lite experiment. Till exempel kanske följande kodavsnitt inte är uppenbart från hjälputdata från backend:
--source Automatic
Skanna den med SANE
Oavsett om du är en person som på något sätt har en hög med gamla familjedokument eller en professionell konservator, är scanning med SANE API ett självklart val för media som kan stå emot de mekaniska påfrestningarna hos skannrar och ADF.
Kombinera kapaciteten hos SANE API med bildefterbehandling eller en OCR-applikation, så kan du digitalisera nästan alla platt media som är värda att bevara.
Om författaren
Russ Frazier (4 publicerade artiklar)
Russ har över 20 års erfarenhet av mjukvaruutveckling på Unix- och Linux-system som elingenjör inom mikroelektronik CAD, IT-system och anpassade API:er. Han har en BSEE från San Jose State University och en MBA från North Carolina State University. Han komponerar och spelar musik på fritiden.
Mer från Russ Frazier
Prenumerera på vårt nyhetsbrev
Gå med i vårt nyhetsbrev för tekniska tips, recensioner, free e-böcker och exklusiva erbjudanden!
Klicka här för att prenumerera
