Jasno je da ih ima nekoliko grafička sučelja za skeniranje fotografija, koji nude brojne mogućnosti. Ali kada je broj fotografija za skeniranje velik, a mi nemamo skener koji ima automatski ulagač listova, stvari postaju teške. Općenito morate kliknuti za skeniranje, još jedan klik možda na drugom kraju prozora da biste spremili ... treba vremena. U svakom slučaju, dobar izgovor za upotrebu Komandna linija. |
Čitao sam članke o Skupna obrada slika pomoću GIMP-a y Kako manipulirati slikama s terminala, baš onog dana kad me je moj prijatelj Huguito pitao za fotografije (koje je izgubio) putovanja koje smo odradili 1989. godine ... (4 role od 36 fotografija! i na papiru, naravno). Podsjetio me na ovaj savjet za skeniranje fotografije koje sam zaboravio.
Ideja je koristiti skriptu kako bi to učinila što je brže moguće:
1.- Stavite fotografiju na skener
2.- Pritisnite bilo koju tipku za skeniranje
3.- Ponovite postupak, osim ako pritisnuta tipka nije na primjer 'n' za izlaz
4.- Fotografije će biti spremljene i numerirane u unaprijed uspostavljenom poddirektoriju.
Koja naredba?
Naredba 'magic' je scanimage koja je dio SANE-a. SANE je API koji pruža standardizirani pristup bilo kojem uređaju za obradu slika. Sane API je u javnoj domeni i njegov izvorni kod je dostupan pod GNU General Public License.
Instalacija je jednostavna. Svaka distribucija donosi svoje pakete. Za Ubuntu (ili njegove derivate) dovoljno je koristiti sinaptik i instalirati zdrave i razumne utiluse.
Kako koristiti?
Kako je uvijek najbolje pisati na terminalu 'man scanimage'. Međutim, rezimirat ćemo opcije koje ćemo koristiti.
Otvaramo terminal i pokrećemo scanimage -L da vidimo dostupne uređaje:
scanimage -L
U mom slučaju se vraća:
Uređaj `xerox_mfp: libusb: 001: 005 'je SAMSUNG ORION višenamjenski periferni uređaj
Ovo je rezultat koji mi je dao sa mojim Samsung SCX-4200 multifunkcionalnim uređajem. Ako imate višenamjenski uređaj i ne možete pronaći uređaj, provjerite je li pisač aktivan, na primjer s ispisom na čekanju.
Vrijednost 'xerox_mfp: libusb: 001: 003' koristi se za naredbu scanimage koji će uređaj koristiti pomoću opcije -d. Ako je povezan samo jedan skener, ova opcija nije potrebna.
Kada naredba scanimage skenira, šalje rezultirajuću sliku na standardni izlaz u pnm ili tiff formatu. Dakle, za skeniranje preusmjeravamo izlaz u datoteku. A ako želimo vidjeti koje poruke daje naredba, dodamo opciju -v. Ako također želimo vidjeti postotak napretka operacije, dodamo opciju -p.
scanimage -v -p> image.tiff
scanimage: skeniranje slike veličine 1284x1734 piksela na 24 bita / piksel
scanimage: sticanje RGB okvira
slika skeniranja: minimalna / maksimalna vrijednost nivoa greylea = 69/255
scanimage: čita ukupno 6679368 bajtova
Napredak: 13.8%
Šta će nam dati ako napravimo pomoćnu sliku? Čini se očitim, pruža pomoć u naredbi. Ali ova naredba ima posebnost. Na kraju opće pomoći za naredbu dodajte specifične parametre koje vaš skener prihvaća.
scanimage - pomoć
Upotreba: scanimage [OPCIJA] ...
BLA bla ....
Opcije specifične za uređaj `xerox_mfp: libusb: 001: 005 ':
standard:
--resolution 75 | 100 | 150 | 200 | 300 | 600 dpi [150] Postavlja rezoluciju skenirane slike.
--mode Lineart | Halftone | Gray | Colour [Color] Odabir načina skeniranja (npr. lineart, monokromatski ili boja).
--highlight 30..70% (u koracima od 10) [neaktivno] Odaberite minimalnu svjetlinu da biste dobili bijelu točku
--source Flatbed | ADF | Auto [Flatbed] Odabir izvora skeniranja (kao što je ulagač dokumenata).
Geometrija:
-l 0..215.9 mm (u koracima od 1) [0] Gornji lijevi x položaj područja skeniranja.
-t 0..297.18 mm (u koracima od 1) [0] Gornji lijevi i položaj područja skeniranja.
-x 0..215.9 mm (u koracima od 1) [215.9] Širina područja skeniranja.
-y 0..297.18 mm (u koracima od 1) [297.18] Visina područja skeniranja.
Upišite `` scanimage --help -d UREĐAJ '' da biste dobili listu svih opcija za UREĐAJ.
Lista dostupnih uređaja:
xerox_mfp: libusb: 001: 005
Odavde možemo odabrati opcije s vrijednostima koje možemo koristiti.
Primjer:
Rezolucija
–Rezolucija 150
modo
–Mode Color
Sada geometrija. Ovo je vrlo korisno jer skeneru možemo reći da izdvoji samo sliku jednog sektora (gdje ćemo staviti fotografiju), a štedimo vrijeme skeniranja ostatka površine što bismo kasnije trebali izrezati i pomoću grafičkog uređivača kao Gimp.
-l 0 započinje skeniranje vodoravno od 0 mm od gornjeg lijevog ugla skenera
-t 0 započinje skeniranje vertikalno od 0 mm od gornjeg lijevog kuta skenera
Imajte na umu da sam odabrao fotografiju staviti u kut skenera [koordinate (0,0)], jer ga je lakše postaviti. Na mom skeneru (veličina A4) mogu ići od 0 do 215.9, a t od 0 do 297.18.
Širina i visina fotografije. U mom slučaju su fotografije dimenzija 13x18cm:
-x 180 širina
-i 130 visoko
Stoga će skenirati samo dio u koji smo stavili našu fotografiju. Naravno, ako se složimo oko toga što je lijevo, desno, širina, visina, gornji i donji dio. Ovisit će o tome kako gledate na svoj skener. Predlažem da testirate koordinate i prilagodimo ih vašim potrebama.
Primjer naredbe može biti:
scanimage -d xerox_mfp: libusb: 001: 003 -p --mode Color --rezlucija 150 -l 0 -t 0 -x 180 -y 130> image.pnm
Pomoću ovih opcija već bismo mogli napraviti našu skriptu.
Ali prije ...
Tiff ili pnm su nekomprimirani formati, tako da će naše fotografije zauzeti ogroman prostor na disku. Tu dolazi naredba za pretvaranje ImageMagick koja je objašnjena u Kako manipulirati slikama s terminala.
Ako iz skenera dobijemo image.pnm, možemo ga pretvoriti u jpg:
pretvori image.pnm image.jpg
Ali prije toga, još jedan trik:
Image.pnm zauzima puno prostora i trebali bismo ga obrisati nakon što nabavimo image.jpg. Postoji opcija za naredbu convert, tako da će umjesto preuzimanja datoteke s diska izravno pretvoriti standardni ulaz. To se postiže crticom - umjesto datoteke:
convert - image.jpg
Budući da scanimage skeniranu sliku isporučuje na standardni izlaz, pravimo "cjevovod" i štedimo vrijeme obrade potrebno za pisanje, a zatim brišemo datoteku image.pnm s diska.
scanimage -d xerox_mfp: libusb: 001: 003 -p --mode Boja --rezolucija 150 -l 0 -t 0 -x 180 -y 130 | convert - image.jpg
Sad da, skripta ...
Sljedeći kod zapisujemo u datoteku koju ćemo nazvati scan-album.sh i dajemo mu odobrenje za izvršenje. Kada ga pokrenemo, stvorit će poddirektorij u kojem će biti naše skenirane fotografije. Ne zaboravite prilagoditi vrijednosti parametara prema svojim potrebama.
Svakako pročitajte neke prijedloge nakon skripte.
#! / bin / bash
# Podaci za opcije
VERBOSE = "" # vidi statusnu poruku: "" nije; "-v" je da
PROGRESS = "- p" # prikaži napredak "" je ne; "-p" je da
# Sljedeći parametri dati su od strane scanimage --help za vaš skener
#Uređaj: Ako postoji samo jedan skener, nije potreban, stavite DEV = ""
# DEV = "xerox_mfp: libusb: 001: 003"
DEV = ""
MODE = "- način rada u boji"
RESOLUTION = "- rezolucija 600dpi"
#geometrija, npr. fotografija 130x180 mm
#location u gornjem lijevom skeneru tjemena
x0 = 0
y0 = 0
širina = 180
visoko = 130
#options:
L = "- l $ x0"
T = "- t $ y0"
WIDTH = "- x $ širina"
HIGH = "- i $ visoko"
# svi parametri zajedno:
PARAMETRI = "$ DEV $ VERBOSE $ PROGRESS $ MODE $ RESOLUTION $ L $ T $ WIDTH $ HIGH"
# Naziv albuma. Kreirajte poddirektorij sa svojim imenom:
ALBUM = "Praznici_1989"
# Iz sigurnosnih razloga ne radim ništa ako direktorij već postoji
mkdir $ ALBUM
if ["$?" = "1"]; onda
izlaz 100
fi
# Osnovno ime za fotografije (u podrežiru)
FILE = "./" $ ALBUM "/" $ ALBUM "_foto_"
pitanje funkcije () {
izbacio "----------------------------------------------- - ------------------------- "
odjek
izbacio "******************************"
echo "Broj skeniranih fotografija:" "$ I"
izbacio "******************************"
echo -e "Pritisnite: n * n za izlaz * Još jedan taster za skeniranje."
odjek
read -s -n1 -p "Skenirati novu fotografiju?" pritiskom tipke
odjek
}
################################################
# Start
################################################
I = 0
pitanje
while ["$ keypress"! = "n"]; učiniti
# nova fotografija za skeniranje
neka je "I + = 1"
IME = $ FILE $ I
scanimage $ PARAMETRI | pretvori - $ NAME.jpg
pitanje
done
Sugestije
Korištenje visokih rezolucija poput onih u primjeru čini skeniranje mnogo sporijim.
Imajte na umu da ako želite ispisati fotografiju na papir, potrebno vam je oko 250 tačaka po inču. Ako je ideja skeniranja fotografija ispisati ih u istoj veličini kao i original, dovoljna je rezolucija 250. Da biste ih vidjeli na monitoru, dovoljno je 100. Veća rezolucija poslužila bi za uvećanje.
Svežanj fotografija treba pripremiti unaprijed tako da svaka fotografija bude s desne strane. Na taj način nećete gubiti vrijeme stavljajući ga u skener tako da se ne okrenu za 180º.
Pri kalibraciji mjerenja geometrijskih parametara, poželjno je paziti u kojem položaju postaviti original, tako da digitalne slike ne budu "naopako". U mom slučaju donji dio fotografije ide duž osi 'l'.
Ako imate spojen samo jedan skener, slobodno ne koristite opciju -d. U skripti je DEV = »»
Ponekad se brojevi mijenjaju u "xerox_mfp: libusb: 001: 003" i morat ćete ga mijenjati svaki put kada koristite skriptu.
Pri kopiranju skripte pripazite na crtice i citate. Crtice (znak minus) mogu biti jedan ili dva zajedno, ovisno o opciji; navodnici su dvostruki u odnosu na tastaturu, oni nisu oni koje neki procesori teksta poput LibreOffice stavljaju.
Iz sigurnosnih razloga skripta ne kreira direktorij ako već postoji, kako ne bi prepisala datoteke ako ih ima. U tom slučaju prestaje.
Ako je foto album star, nemojte žaliti ako slike obiluju kosom, borama ili kilogramima: -
Vau! Kakav dobar tuto!
Nisam mislio da se toliko stvari može učiniti sa bash xD
Svaki dan učite više!
Hvala na unosu!
Nemam skaner, ali ako ga dobijem, odmah ću ga probati 🙂
Koliko će mi ovaj doprinos puno pomoći u digitalizaciji mojih bilješki, nadam se da će se poboljšati, razmišljam o funkciji za skeniranje kompletne datoteke i otkrivanje veličine skeniranog objekta, jer ovisimo o magici slike, može pretvoriti u djvu ili pdf i tako stvoriti jednu datoteku. Pa, samo sam provalio dalje. Hvala vam puno na doprinosu.
Kakvo veliko zadovoljstvo, veliko hvala na razmjeni.