Skenējiet fotoattēlu albumu ar skriptu no komandrindas

Skaidrs, ka ir vairāki grafiskās saskarnes fotoattēlu skenēšanai, kas piedāvā daudzas iespējas. Bet, kad skenējamo fotoattēlu skaits ir liels un mums nav skenera ar automātisku lapu padevēju, viss kļūst sarežģīts. Parasti, lai skenētu, ir jāveic vēl viens klikšķis, iespējams, vēl viens klikšķis loga otrā galā, lai saglabātu ... tas prasa laiku. Jebkurā gadījumā labs attaisnojums Komandrinda.

Tas ir Rubén ieguldījums, tādējādi kļūstot par vienu no mūsu iknedēļas konkursu uzvarētājiem: «Dalieties ar to, ko zināt par Linux«. Apsveicam Rubēnu!

Es lasīju rakstus par Sērijveida attēlu apstrāde ar GIMP y Kā manipulēt ar attēliem no termināla, tieši tajā dienā, kad mans draugs Huugito man lūdza fotogrāfijas (kuras viņš bija pazaudējis) par ceļojumu, kuru mēs veicām 1989. gadā ... (protams, 4 ruļļi ar 36 fotogrāfijām! un, protams, uz papīra 🙂. Tas man atgādināja šo padomu, lai skenētu fotogrāfijas ka biju aizmirsusi.

Ideja ir izmantot skriptu, lai to izdarītu pēc iespējas ātrāk:

1.- Ielieciet fotoattēlu uz skenera
2. Nospiediet jebkuru taustiņu, lai skenētu
3.- Atkārtojiet procedūru, ja vien nospiedušais taustiņš nav, piemēram, “n”, lai izietu
4.- Fotoattēli tiks saglabāti un numurēti iepriekš izveidotā apakšdirektorijā.

Kāda komanda?

Maģiskā komanda ir skenēšanas attēls, kas ir daļa no SANE. SANE ir API, kas nodrošina standartizētu piekļuvi jebkurai attēlveidošanas ierīcei. Sane API ir publiski pieejams, un tā pirmkods ir pieejams ar GNU General Public License.

Uzstādīšana ir vienkārša. Katrs izplatījums nes savus pakas. Ubuntu (vai tā atvasinājumiem) ir pietiekami izmantot sinaptisko un instalēt saprāta un saprāta utils.

Kā izmantot?

Cik vienmēr labāk ir rakstīt terminālā “man scanimage”. Tomēr mēs apkoposim iespējas, kuras izmantosim.

Mēs atveram termināli un palaižam scanimage -L, lai redzētu pieejamās ierīces:

skenēšanas attēls -L

Manā gadījumā tas atgriežas:

ierīce `xerox_mfp: libusb: 001: 005 'ir SAMSUNG ORION daudzfunkcionāla perifēra

Tas ir rezultāts, ko tas man deva ar manu Samsung SCX-4200 daudzfunkciju. Ja jums ir daudzfunkcionāls printeris un jūs nevarat atrast ierīci, pārliecinieties, vai printeris nav aktīvs, piemēram, ar neapstiprinātu druku.

Vērtību 'xerox_mfp: libusb: 001: 003' izmanto, lai komandu scanimage norādītu, kuru ierīci izmantot, izmantojot opciju -d. Ja ir pievienots tikai viens skeneris, šī opcija nav nepieciešama.

Skenējot komandu scanimage, tā nosūta iegūto attēlu uz standarta izvadi pnm vai tiff formātā. Tātad, lai skenētu, mēs novirzām izvadi uz failu. Un, ja mēs vēlamies redzēt, kādus ziņojumus komanda dod, mēs pievienojam opciju -v. Ja vēlamies redzēt arī operācijas progresa procentuālo daudzumu, pievienojam opciju -p.

scanimage -v -p> image.tiff

scanimage: skenējams attēls ar izmēru 1284x1734 pikseļi ar ātrumu 24 biti / pikseļi
scanimage: iegūst RGB kadru
scanimage: min / max pelēkās pakāpes vērtība = 69/255
scanimage: kopā izlasiet 6679368 baitus
Progress: 13.8%

Ko tas mums dos, ja mēs skenēsim attēlu - palīdzēsim? Tas šķiet acīmredzams, tas dod palīdzību komandā. Bet šai komandai ir īpatnība. Komandas vispārīgās palīdzības beigās pievienojiet konkrētus parametrus, kurus jūsu skeneris pieņem.

scanimage --palīdzība

Lietojums: scanimage [OPTION] ...

BLA bla ....

Ierīcei raksturīgās opcijas `xerox_mfp: libusb: 001: 005 ':

standarts:
--resolution 75 | 100 | 150 | 200 | 300 | 600dpi [150] Iestata skenētā attēla izšķirtspēju.
- režīms Lineart | Pustoņa | Pelēks | Krāsa [Krāsa] Atlasa skenēšanas režīmu (piemēram, lineāru, vienkrāsainu vai krāsu).
--izcelt 30..70% (soļos no 10) [neaktīvs] Atlasiet minimālo spilgtumu, lai iegūtu baltu punktu
--source Flatbed | ADF | Auto [Flatbed] Atlasa skenēšanas avotu (piemēram, dokumentu padevēju).
Ģeometrija:
-l 0..215.9 mm (1. solī) [0] Skenēšanas apgabala augšējā kreisajā pusē x pozīcija.
-t 0..297.18 mm (soļos no 1) [0] Skenēšanas apgabala augšējā kreisajā pusē un pozīcija.
-x 0..215.9 mm (1. solī) [215.9] Skenēšanas laukuma platums.
-y 0..297.18 mm (ar 1. soli) [297.18] Skenēšanas laukuma augstums.

Ierakstiet “scanimage --help -d DEVICE”, lai iegūtu visu DEVICE opciju sarakstu.

Pieejamo ierīču saraksts:

xerox_mfp: libusb: 001: 005

Šeit mēs varam izvēlēties opcijas ar vērtībām, kuras mēs varam izmantot.

piemērs:

Rezolūcija

–Rezolūcija 150

Modo

–Režīma krāsa

Tagad ģeometrija. Tas ir ļoti noderīgi, jo mēs varam pateikt skenerim, lai tas izvelk tikai viena sektora attēlu (kur mēs ievietosim fotogrāfiju), un mēs ietaupām pārējās virsmas skenēšanas laiku, ko mums vajadzētu arī vēlāk sagriezt ar grafisko redaktoru, piemēram, Gimp .

-l 0 sāk skenēt horizontāli no 0 mm no skenera augšējā kreisā stūra

-t 0 sāk skenēt vertikāli no 0 mm no skenera augšējā kreisā stūra

Ņemiet vērā, ka es izvēlējos ievietot fotoattēlu skenera stūrī [koordinātas (0,0)], jo to ir vieglāk ievietot. Ar manu skeneri (A4 izmērs) es varu pārvietoties no 0 līdz 215.9 un t no 0 līdz 297.18.

Fotogrāfijas platums un augstums. Manā gadījumā fotoattēli ir 13x18 cm:

-x 180 plats

-un 130 augsts

Tāpēc tas skenēs tikai to daļu, kurā ievietojam savu fotoattēlu. Protams, ja vienojamies par to, kas ir kreisais, labais, platums, augstums, augšdaļa un apakšdaļa. Tas būs atkarīgs no tā, kā skatāties uz skeneri. Es iesaku pārbaudīt koordinātas un pielāgot tās savām vajadzībām.

Komandas piemērs varētu būt:

scanimage -d xerox_mfp: libusb: 001: 003 -p - režīma Krāsa --izšķirtspēja 150 -l 0 -t 0 -x 180 -y 130> image.pnm

Izmantojot šīs opcijas, mēs jau varētu izveidot savu skriptu.

Bet pirms ...

Tiff vai pnm ir nesaspiesti formāti, tāpēc mūsu fotogrāfijas aizņems milzīgu vietu diskā. Šeit nāk komanda ImageMagick convert, kas ir paskaidrots sadaļā Kā manipulēt ar attēliem no termināla.

Ja no skenera iegūstam image.pnm, mēs to varam pārveidot par JPG:

konvertēt image.pnm image.jpg

Bet pirms to izdarīt, vēl viens triks:

Image.pnm aizņem daudz vietas, un mums tas ir jāizdzēš, kad esam saņēmuši savu image.jpg. Ir iespēja pārveidot komandu, lai tā vietā, lai ņemtu failu no diska, tā tieši pārveidos standarta ievadi. Tas tiek paveikts ar domuzīmi - faila vietā:

pārveidot - image.jpg

Tā kā scanimage piegādā skenēto attēlu standarta izvadā, mēs izveidojam "cauruļvadu" un ietaupām apstrādes laiku, kas nepieciešams, lai rakstītu un pēc tam izdzēstu failu image.pnm no diska.

scanimage -d xerox_mfp: libusb: 001: 003 -p - režīma krāsa --izšķirtspēja 150 -l 0 -t 0 -x 180 -y 130 | pārveidot - image.jpg

Tagad jā, skripts ...

Mēs ierakstām šādu kodu failā, kuru mēs sauksim par scan-album.sh, un mēs piešķiram tam izpildes atļauju. Kad mēs to palaidīsim, tas izveidos apakšdirektoriju, kur atradīsies mūsu skenētie fotoattēli. Atcerieties modificēt parametru vērtības atbilstoši savām vajadzībām.

Pēc skripta noteikti izlasiet dažus ieteikumus.

#! / bin / bash
# Iespēju dati

VERBOSE = "" # skatiet statusa ziņojumu: "" nav; "-v" ir jā
PROGRESS = "- p" # show progress "" nav; "-p" ir jā

# Šādi parametri tiek doti, izmantojot scanimage --help jūsu skenerim
#Device: Ja ir tikai viens skeneris, tas nav nepieciešams, ielieciet DEV = ""
# DEV = "xerox_mfp: libusb: 001: 003"

DEV = ""
MODE = "- režīma krāsa"
RESOLUTION = "- izšķirtspēja 600 dpi"

#geometry, piemēram, 130x180 mm fotoattēls
#location virsotnes kreisajā virsotņu skenerī

x0 = 0
y0 = 0
platums = 180
augsts = 130

#options:

L = "- l $ x0"
T = "- t $ y0"
WIDTH = "- x $ platums"
HIGH = "- un $ high"

# visi parametri kopā:

PARAMETRI = "$ DEV $ VERBOSE $ PROGRESS $ MODE $ RESOLUTION $ L $ T $ WIDTH $ HIGH"

# Albuma nosaukums. Izveidojiet apakšdirektoriju ar savu vārdu:

ALBUM = "Brīvdienas_1989"

# Drošības labad es nedaru neko, ja direktorija jau pastāv

mkdir $ ALBUM

ja ["$?" = "1"]; pēc tam
izeja 100
fi

# Bāzes nosaukums fotogrāfijām (apakšdirektorijā)

FILE = "./" $ ALBUM "/" $ ALBUM "_foto_"

funkcijas jautājums () {
izmest ārā "------------------------------------------------ ------------------------- "
palaist garām
izmest ārā "******************************"
atbalss "Skenēto fotoattēlu skaits:" "$ I"
izmest ārā "******************************"
echo -e "Nospiediet: n * n, lai izietu no vēl viena skenēšanas taustiņa."
palaist garām
lasīt -s -n1 -p "Vai skenēt jaunu fotoattēlu?" taustiņa nospiešana
palaist garām
}

####################################################

# Sākt

####################################################

I = 0

jautājums

kamēr ["$ keypress"! = "n"]; darīt
# jauns skenējamais fotoattēls
ļaujiet “I + = 1”
NAME = $ FILE $ I
scanimage $ PARAMETRI | konvertēt - $ NAME.jpg
jautājums
darīts

Ieteikumi

Izmantojot augstas izšķirtspējas, kādas ir piemērā, skenēšana tiek padarīta daudz lēnāka.

Paturiet prātā, ka, ja vēlaties izdrukāt fotoattēlu uz papīra, jums ir nepieciešami aptuveni 250 punkti collā. Ja fotogrāfiju skenēšanas ideja ir izdrukāt tos tādā pašā izmērā kā oriģināls, pietiek ar izšķirtspēju 250. Lai tos redzētu monitorā ar 100, pietiek. Lielāka izšķirtspēja kalpotu palielinājumam.

Foto kaudze jāsagatavo iepriekš, lai katra fotogrāfija būtu labajā pusē. Tādā veidā jūs netērēsiet laiku, ievietojot to skenerī, lai tie netiktu pagriezti par 180 °.

Kalibrējot ģeometrijas parametru mērījumus, ieteicams novērot, kurā vietā jānovieto oriģināls, lai digitālie attēli nebūtu “otrādi”. Manā gadījumā fotoattēla apakšējā daļa iet pa “l” asi.

Ja jums ir pievienots tikai viens skeneris, nelietojiet opciju -d. Skriptā tas ir DEV = »»

Dažreiz cipari mainās mapē "xerox_mfp: libusb: 001: 003", un jums tas būs jāpārveido katru reizi, kad izmantojat skriptu.

Kopējot skriptu, uzmanieties no defisēm un pēdiņām. Defises (mīnus zīme) var būt viena vai divas kopā atkarībā no opcijas; pēdiņas ir tastatūras dubultā, tās nav tās, kuras ievieto daži vārdu procesori, piemēram, LibreOffice.

Drošības labad skripts neizveido direktoriju, ja tas jau pastāv, lai nepārrakstītu failus, ja tādi ir. Tādā gadījumā tas apstājas.

Ja fotoalbums ir vecs, nenožēlojiet, ja trūkst attēlu, grumbu vai kilogramu: -


Atstājiet savu komentāru

Jūsu e-pasta adrese netiks publicēta. Obligātie lauki ir atzīmēti ar *

*

*

  1. Atbildīgais par datiem: Migels Ángels Gatóns
  2. Datu mērķis: SPAM kontrole, komentāru pārvaldība.
  3. Legitimācija: jūsu piekrišana
  4. Datu paziņošana: Dati netiks paziņoti trešām personām, izņemot juridiskus pienākumus.
  5. Datu glabāšana: datu bāze, ko mitina Occentus Networks (ES)
  6. Tiesības: jebkurā laikā varat ierobežot, atjaunot un dzēst savu informāciju.

  1.   Juniori Kalderons teica

    Oho! Cik labs tuto!
    Es nedomāju, ka ar bash xD var izdarīt tik daudz lietu
    Katru dienu jūs uzzināt vairāk!
    Paldies par ieguldījumu!
    Man nav skenera, bet, ja es to dabūšu, es to tūlīt izmēģināšu 🙂

  2.   Rube teica

    Cik labi šis ieguldījums man ļoti palīdzēs piezīmju digitalizācijā, es ceru, ka tas uzlabosies, es domāju par funkciju pilnīga faila skenēšanai un skenētā objekta lieluma noteikšanai, jo mēs esam atkarīgi no attēla maģiskā, to var pārveidot par djvu vai pdf un tādējādi izveidojiet vienu failu. Nu es vienkārši klabināju tālāk. Liels paldies par ieguldījumu.

  3.   mīlu to teica

    Cik liels prieks, liels paldies par dalīšanos.