Je ich zjavne niekoľko grafické rozhrania na skenovanie fotografií, ktoré poskytujú veľa možností. Ale keď je počet skenovaných fotografií vysoký a nemáme skener s automatickým podávačom listov, situácia sa zhoršuje. Spravidla musíte kliknúť na skenovanie, ďalšie kliknúť možno na druhom konci okna, aby ste uložili ... chce to čas. Každopádne, dobrá výhovorka na použitie Príkazový riadok. |
Čítal som články o Dávkové spracovanie obrazu s GIMP y Ako manipulovať s obrázkami z terminálu, práve v deň, keď ma môj priateľ Huguito požiadal o fotografie (ktoré stratil) z výletu, ktorý sme absolvovali v roku 1989 ... (4 kotúče s 36 fotografiami! a samozrejme na papieri 🙂. Pripomenulo mi to tento tip na skenovanie fotky, ktoré som zabudol.
Cieľom je použiť skript, aby ste to dosiahli čo najrýchlejšie:
1. - Vložte fotografiu do skenera
2. - Stlačením ľubovoľnej klávesy skenujete
3. - Opakujte postup, pokiaľ stlačené tlačidlo nie je napríklad na ukončenie
4.- Fotografie sa uložia a očíslujú do vopred vytvoreného podadresára.
Aký príkaz?
Príkaz „mágia“ je scanimage, ktorý je súčasťou programu SANE. SANE je API, ktoré poskytuje štandardizovaný prístup k ľubovoľnému zobrazovaciemu zariadeniu. Sane API je voľným dielom a jeho zdrojový kód je k dispozícii pod GNU General Public License.
Inštalácia je jednoduchá. Každá distribúcia prináša svoje balíčky. Pre Ubuntu (alebo jeho deriváty) stačí použiť synaptický a nainštalovať sane a sane-utils.
Ako použiť?
Najlepšie je vždy písať do terminálu 'man scanimage'. Zhrnieme však možnosti, ktoré použijeme.
Otvoríme terminál a spustíme program scanimage -L, aby sme videli dostupné zariadenia:
scanimage -L
V mojom prípade sa vráti:
zariadenie `xerox_mfp: libusb: 001: 005 'je multifunkčné periférie SAMSUNG ORION
Toto je výsledok, ktorý mi priniesol môj multifunkčný prístroj Samsung SCX-4200. Ak máte multifunkčné zariadenie a nemôžete zariadenie nájsť, uistite sa, že tlačiareň nie je aktívna, napríklad s nespracovanou tlačou.
Hodnota „xerox_mfp: libusb: 001: 003“ sa používa na informovanie príkazu scanimage, ktoré zariadenie má použiť, pomocou voľby -d. Ak je pripojený iba jeden skener, táto možnosť nie je potrebná.
Pri skenovaní príkazu scanimage odošle výsledný obrázok na štandardný výstup vo formáte pnm alebo tiff. Na skenovanie teda presmerujeme výstup do súboru. A ak chceme vidieť, aké správy dáva príkaz, pridáme voľbu -v. Ak chceme vidieť aj percento priebehu operácie, pridáme voľbu -p.
scanimage -v -p> image.tiff
scanimage: skenovanie obrázka s veľkosťou 1284x1734 pixelov pri 24 bitoch / pixel
scanimage: získanie rámca RGB
skenovací obrázok: minimálna / maximálna hodnota úrovne šedej = 69/255
scanimage: prečítať spolu 6679368 bajtov
Pokrok: 13.8%
Čo nám dá, ak skenujeme - pomôžeme? Zdá sa to zrejmé, poskytuje pomoc na povel. Ale tento príkaz má zvláštnosť. Na konci všeobecnej pomoci pre príkaz pridajte konkrétne parametre, ktoré váš skener akceptuje.
scanimage - pomoc
Použitie: scanimage [OPTION] ...
BLA bla ....
Možnosti špecifické pre zariadenie `xerox_mfp: libusb: 001: 005 ':
štandard:
--rozlíšenie 75 | 100 | 150 | 200 | 300 | 600 dpi [150] Nastaví rozlíšenie skenovaného obrázka.
--mód Lineart | Poltón | Šedá | Farba [Color] Vyberie režim skenovania (napr. lineart, monochromatický alebo farebný).
--výraz 30–70% (v krokoch po 10) [neaktívne] Vyberte minimálny jas, aby ste získali biely bod
--source Flatbed | ADF | Auto [Flatbed] Vyberie zdroj skenovania (napríklad podávač dokumentov).
geometria:
-l 0..215.9 mm (v krokoch po 1) [0] Vľavo hore x poloha oblasti skenovania.
-t 0..297.18 mm (v krokoch po 1) [0] Vľavo hore a poloha oblasti skenovania.
-x 0..215.9 mm (v krokoch po 1) [215.9] Šírka skenovanej oblasti.
-y 0..297.18 mm (v krokoch po 1) [297.18] Výška skenovanej oblasti.
Zadaním výrazu „scanimage --help -d DEVICE“ zobrazíte zoznam všetkých možností pre zariadenie DEVICE.
Zoznam dostupných zariadení:
xerox_mfp: libusb: 001: 005
Odtiaľto si môžeme vybrať možnosti s hodnotami, ktoré môžeme použiť.
príklad:
Riešenie
–Rozlíšenie 150
modo
–Farebný režim
Teraz geometria. To je veľmi užitočné, pretože môžeme povedať skeneru, aby extrahoval iba obrázok sektoru (kam umiestnime fotografiu), a ušetríte čas skenovania zvyšku povrchu, ktorý by sme neskôr mali tiež rezať grafickým editorom, ako je napríklad ako Gimp.
-l 0 začne skenovať vodorovne od 0 mm od ľavého horného rohu skenera
-t 0 začne skenovať vertikálne od 0 mm od ľavého horného rohu skenera
Upozorňujeme, že som sa rozhodol umiestniť fotografiu do rohu skenera [súradnice (0,0)], pretože je ľahšie ju umiestniť. Na mojom skeneri (veľkosť A4) môžem ísť z 0 na 215.9 at z 0 na 297.18.
Šírka a výška fotografie. V mojom prípade sú fotky 13x18cm:
-x šírka 180
-a 130 vysokých
Preto naskenuje iba časť, kam sme vložili našu fotografiu. Samozrejme, ak sa zhodneme na tom, čo je ľavá, pravá, šírka, výška, vrch a spodok. Bude to závisieť od toho, ako sa na svoj skener pozeráte. Navrhujem otestovať súradnice a prispôsobiť ich vašim potrebám.
Príkladom príkazu môže byť:
scanimage -d xerox_mfp: libusb: 001: 003 -p - režim Farba - rozlíšenie 150 -l 0 -t 0 -x 180 -y 130> image.pnm
Vďaka týmto možnostiam by sme už mohli vytvoriť náš skript.
Ale predtým ...
Tiff alebo pnm sú nekomprimované formáty, takže naše fotografie zaberú obrovské miesto na disku. To je miesto, kde prichádza príkaz ImageMagick convert, ktorý je vysvetlený v Ako manipulovať s obrázkami z terminálu.
Ak dostaneme zo skenera súbor image.pnm, môžeme ho previesť na jpg:
previesť image.pnm image.jpg
Predtým však urobte ďalší trik:
Súbor Image.pnm zaberá veľa miesta a po získaní súboru image.jpg by sme ho mali odstrániť. Pre príkaz convert existuje možnosť, aby namiesto prevzatia súboru z disku priamo konvertoval štandardný vstup. To sa dosiahne pomlčkou - namiesto súboru:
prevádzať - image.jpg
Pretože program scanimage dodáva naskenovaný obrázok na štandardný výstup, urobíme „pipeline“ a ušetríme čas potrebný na zápis a následné odstránenie súboru image.pnm z disku.
scanimage -d xerox_mfp: libusb: 001: 003 -p - režim Farba - rozlíšenie 150 -l 0 -t 0 -x 180 -y 130 | prevádzať - image.jpg
Teraz áno, scenár ...
Nasledujúci kód napíšeme do súboru, ktorý nazveme scan-album.sh a dáme mu povolenie na vykonávanie. Keď ho spustíme, vytvorí sa podadresár, kde budú naše naskenované fotografie. Nezabudnite upraviť hodnoty parametrov podľa svojich potrieb.
Nezabudnite si prečítať niekoľko návrhov po skripte.
#! / Bin / bash
# Údaje pre možnosti
VERBOSE = "" # pozri stavovú správu: "" nie je; „-v“ je áno
PROGRESS = "- p" # zobraziť pokrok "" je nie; „-p“ je áno
# Nasledujúce parametre poskytuje program scanimage --help pre váš skener
#Zařízení: Ak existuje iba jeden skener, nie je to potrebné, vložte DEV = ""
# DEV = "xerox_mfp: libusb: 001: 003"
DEV = ""
MODE = "- farebný režim"
RESOLUTION = "- rozlíšenie 600 dpi"
#geometry, napr. fotografia s rozmermi 130 x 180 mm
# umiestnenie v ľavom hornom vrcholovom skeneri
x0 = 0
y0 = 0
šírka = 180
vysoká = 130
#možnosti:
L = "- l $ x0"
T = "- t $ y0"
WIDTH = "- x $ šírka"
HIGH = "- a $ high"
# všetky parametre spolu:
PARAMETRE = "$ DEV $ VERBÓZA $ POKROK $ REŽIM $ ROZLIŠENIE $ L $ T $ ŠÍRKA $ VYSOKÁ"
# Názov albumu. Vytvorte podadresár so svojím menom:
ALBUM = "Prázdniny_1989"
# Z bezpečnostných dôvodov nerobím nič, ak adresár už existuje
mkdir $ ALBUM
ak [„$?“ = "1"]; potom
výstup 100
fi
# Základný názov pre fotografie (v podadresári)
FILE = "./" $ ALBUM "/" $ ALBUM "_foto_"
funkčná otázka () {
zahodil "----------------------------------------------- - ------------------------- "
minúť
zahodil "******************************"
echo "Počet naskenovaných fotografií:" "$ I"
zahodil "******************************"
echo -e "Stlačením: n * n ukončíte * Ďalšia klávesa na skenovanie."
minúť
read -s -n1 -p "Naskenovať novú fotografiu?" stlačenie klávesy
minúť
}
###################################################
# Štart
###################################################
I = 0
otázka
while ["$ keypress"! = "n"]; robiť
# nová fotografia na skenovanie
nech „I + = 1“
NÁZOV = $ SÚBOR $ I
scanimage $ PARAMETRE | prevádzať - $ NAME.jpg
otázka
vykonané
Návrhy
Použitie vysokých rozlíšení, ako sú tie v príklade, robí skenovanie oveľa pomalšie.
Majte na pamäti, že ak chcete tlačiť fotografiu na papier, potrebujete asi 250 bodov na palec. Ak chcete skenovať fotografie tak, že ich vytlačíte v rovnakej veľkosti ako originál, stačí rozlíšenie 250. Ak ich chcete vidieť na monitore so 100, stačí ich vidieť. Vyššie rozlíšenie by slúžilo na zväčšenie.
Hromada fotografií by mala byť pripravená vopred, aby každá fotografia bola na pravej strane. Takto nebudete strácať čas vkladaním do skenera, aby sa neotáčali o 180 °.
Pri kalibrácii meraní parametrov geometrie je vhodné sledovať, do ktorej polohy umiestniť originál, aby digitálne obrázky neboli „hore nohami“. V mojom prípade ide spodná časť fotografie pozdĺž osi „l“.
Ak máte pripojený iba jeden skener, voľbu -d nepoužívajte. V scenári je to DEV = »»
Niekedy sa čísla v „xerox_mfp: libusb: 001: 003“ menia a pri každom použití skriptu ich budete musieť upraviť.
Pri kopírovaní skriptu dávajte pozor na pomlčky a úvodzovky. Pomlčky (znamienko mínus) môžu byť v závislosti od možnosti dve alebo dve spolu; úvodzovky sú dvojnásobkom klávesnice, nie sú to tie, ktoré vložili niektoré textové procesory ako LibreOffice.
Kvôli bezpečnosti skript nevytvorí adresár, ak už existuje, aby súbory neprepísal, ak nejaké existujú. V takom prípade to prestane.
Ak je fotoalbum starý, neľutujte, ak majú obrázky bohaté vlasy, vrásky alebo kilogramy: -
Wow! Aká dobrá táto!
Nemyslel som si, že s bash xD sa dá urobiť toľko vecí
Každý deň sa dozviete viac!
Ďakujeme za príspevok!
Scaner nemám, ale ak si ho zaobstarám, okamžite ho vyskúšam 🙂
Ako dobre mi tento príspevok pomôže pri digitalizácii mojich poznámok, dúfam, že sa to zlepší, myslím na funkciu skenovania celého súboru a zisťovania veľkosti skenovaného objektu, keďže sme závislí od magickej kvality obrázku, previesť na djvu alebo pdf a vytvoriť tak jeden súbor. No len som sa túlal ďalej. Dakujem pekne za prispevok.
Aké veľké potešenie, ďakujem veľmi pekne za zdieľanie.