Iš komandinės eilutės nuskaitykite nuotraukų albumą su scenarijumi

Akivaizdu, kad yra keletas grafinės sąsajos nuotraukoms nuskaityti, kurie suteikia daugybę galimybių. Tačiau kai nuskaitomų nuotraukų skaičius yra didelis ir neturime skaitytuvo su automatiniu lapų tiektuvu, viskas tampa sudėtinga. Apskritai, norėdami nuskaityti, turite spustelėti, kitą spustelėjimą galbūt kitoje lango pusėje, kad išsaugotumėte... tai užtrunka. Bet kokiu atveju, geras pasiteisinimas naudoti Komandinė eilutė.

Tai yra Rubéno indėlis, todėl jis tapo vienu iš mūsų savaitinių varžybų nugalėtojų: «Pasidalykite tuo, ką žinote apie „Linux“«. Sveikiname Rubeną!

Skaičiau straipsnius apie Paketinių vaizdų apdorojimas naudojant GIMP y Kaip manipuliuoti vaizdais iš terminalo, kaip tik tą dieną, kai mano draugas Huguito paprašė manęs nuotraukų (kurių jis buvo pametęs) iš mūsų kelionės 1989 m.... (4 ritiniai iš 36 nuotraukų! ir, žinoma, popieriuje 🙂 . Tai privertė prisiminti šį patarimą nuskaitau nuotraukas, kurias buvau pamiršęs.

Idėja yra naudoti scenarijų, kad tai padarytumėte kuo greičiau:

1.- Įdėkite nuotrauką į skaitytuvą
2. – Norėdami nuskaityti, paspauskite klavišą
3.- Pakartokite procedūrą, nebent paspaustas klavišas yra, pavyzdžiui, „n“, kad išeitumėte
4.- Nuotraukos bus išsaugotos ir sunumeruotos iš anksto nustatytame pakatalogyje.

Kokia komanda?

„Magic“ komanda yra „scanimage“, kuri yra SANE dalis. SANE yra API, suteikianti standartizuotą prieigą prie bet kurio vaizdo nuskaitymo įrenginio. „Sane“ API yra viešasis domenas, o jos šaltinio kodas yra prieinamas pagal GNU bendrąją viešąją licenciją.

Įdiegimas paprastas. Kiekvienas platinimas yra su savo paketais. Ubuntu (ar jo dariniams) pakanka naudoti synaptic ir įdiegti sane ir sane-utils.

Kaip jis naudojamas?

Kaip visada, geriausia terminale parašyti „man scanimage“. Tačiau mes apibendrinsime pasirinkimus, kuriuos naudosime.

Atidarome terminalą ir paleidžiame scanimage -L, kad pamatytume galimus įrenginius:

nuskaitytas vaizdas -L

Mano atveju grįžta:

įrenginys „xerox_mfp:libusb:001:005“ yra SAMSUNG ORION daugiafunkcis išorinis įrenginys

Tokį rezultatą gavau naudodamas daugiafunkcį Samsung SCX-4200. Jei turite daugiafunkcį įrenginį ir jis negali jo rasti, įsitikinkite, kad spausdintuvas nėra aktyvus, pavyzdžiui, laukiama spausdinimo.

Reikšmė „xerox_mfp:libusb:001:003“ skirta komandai scanimage nurodyti, kurį įrenginį naudoti naudojant parinktį -d. Jei prijungtas tik vienas skaitytuvas, ši parinktis nebūtina.

Kai nuskaito komanda scanimage, ji siunčia gautą vaizdą į standartinę išvestį pnm arba tiff formatu. Taigi, norėdami nuskaityti, nukreipiame išvestį į failą. Ir jei norime pamatyti, kokius pranešimus duoda komanda, pridedame parinktį -v. Jei taip pat norime matyti operacijos eigos procentą, pridedame parinktį -p.

scanimage -v -p > image.tiff

nuskaitytas vaizdas: nuskaitomas 1284 x 1734 pikselių dydžio vaizdas 24 bitai/pikselis
nuskaitymo vaizdas: RGB kadro gavimas
nuskaitytas vaizdas: min./maks. pilkumo lygio reikšmė = 69/255
nuskaitytas vaizdas: iš viso perskaityti 6679368 baitai
Pažanga: 13.8%

Ką mums duos, jei atliksime nuskaitymo pagalbą? Atrodo akivaizdu, tai padeda pagal komandą. Tačiau ši komanda turi ypatumą. Komandos bendrojo žinyno pabaigoje pridėkite konkrečius parametrus, kuriuos priima jūsų skaitytuvas.

scanimage --pagalba

Naudojimas: scanimage [OPTION]...

BLA bla....

Konkrečios įrenginio parinktys `xerox_mfp:libusb:001:005':

standartas:
--rezoliucija 75|100|150|200|300|600 dpi [150]Nustato nuskaityto vaizdo skiriamąją gebą.
--mode Linijinis|Pusinis tonas|Pilkas|Spalva [Spalva]Parenkamas nuskaitymo režimas (pvz., linijinis, vienspalvis arba spalvotas).
--paryškinkite 30...70% (10 žingsniais) [neaktyvus]Pasirinkite minimalų ryškumą, kad gautumėte baltą tašką
--source Flatbed|ADF|Auto [Flatbed]Parenkamas nuskaitymo šaltinis (pvz., dokumentų tiektuvas).
geometrija:
-l 0..215.9mm (1 žingsniais) [0]Viršus kairėje x nuskaitymo srities padėtis.
-t 0..297.18mm (1 žingsniais) [0]Viršuje, kairėje ir nuskaitymo srities padėtis.
-x 0..215.9mm (1 žingsniais) [215.9]Nuskaitymo srities plotis.
-y 0..297.18mm (1 žingsniais) [297.18]Nuskaitymo srities aukštis.

Įveskite „scanimage --help -d DEVICE“, kad gautumėte visų DEVICE parinkčių sąrašą.

Galimų įrenginių sąrašas:

xerox_mfp:libusb:001:005

Iš čia galime pasirinkti parinktis su reikšmėmis, kurias galime naudoti.

pavyzdys:

Nutarimas

– 150 rezoliucija

Būdas

– Spalvų režimas

Dabar geometrija. Tai labai naudinga, nes galime pasakyti, kad skaitytuvas ištrauktų vaizdą tik iš vieno sektoriaus (kur patalpinsime nuotrauką), ir sutaupysime likusio paviršiaus skenavimo laiką, kurį taip pat turėtume vėliau iškirpti naudodami grafikos rengyklę, pvz. Gimp .

-l 0 pradeda skenuoti horizontaliai nuo 0 mm nuo viršutinio kairiojo skaitytuvo kampo

-t 0 pradeda nuskaityti vertikaliai nuo 0 mm nuo viršutinio kairiojo skaitytuvo kampo

Atkreipkite dėmesį, kad pasirinkau nuotrauką dėti į skaitytuvo kampą [koordinatės (0,0)], nes ją lengviau įdėti. Mano skaitytuve (A4 dydis) l gali būti nuo 0 iki 215.9 ir t nuo 0 iki 297.18.

Nuotraukos plotis ir aukštis. Mano atveju nuotraukos yra 13x18 cm:

-x 180 plotis

-y 130 aukščio

Todėl jis nuskaitys tik tą dalį, kurioje įdėjome savo nuotrauką. Žinoma, susitariame, kas yra kairėje, dešinėje, plotyje, aukštyje, viršuje ir apačioje. Tai priklausys nuo to, kaip žiūrėsite į skaitytuvą. Siūlau išbandyti koordinates ir pritaikyti jas pagal savo poreikius.

Komandos pavyzdys galėtų būti:

scanimage -d xerox_mfp:libusb:001:003 -p --mode Color --resolution 150 -l 0 -t 0 -x 180 -y 130 > image.pnm

Naudodami šias parinktis dabar galime sukurti savo scenarijų.

Tačiau prieš…

TIFF arba PNM yra nesuspausti formatai, todėl mūsų nuotraukos užims daug vietos diske. Čia atsiranda „ImageMagick“ konvertavimo komanda, kuri paaiškinta „Kaip manipuliuoti vaizdais iš terminalo“.

Jei gausime image.pnm iš skaitytuvo, galime jį konvertuoti į jpg:

konvertuoti image.pnm image.jpg

Tačiau prieš tai darant dar vieną triuką:

Vaizdas.pnm užima daug vietos ir turėtume jį ištrinti gavę image.jpg. Yra konvertavimo komandos parinktis, kad užuot paėmus failą iš disko, ji tiesiogiai konvertuotų standartinę įvestį. Tai atliekama naudojant scenarijų, o ne failą:

konvertuoti - vaizdas.jpg

Kadangi „scanimage“ pateikia nuskaitytą vaizdą į standartinę išvestį, mes jį „suvedami“ ir sutaupome apdorojimo laiką, kurio reikia norint parašyti, o tada ištriname image.pnm failą iš disko.

scanimage -d xerox_mfp:libusb:001:003 -p --mode Spalva --rezoliucija 150 -l 0 -t 0 -x 180 -y 130 | konvertuoti - vaizdas.jpg

Dabar scenarijus…

Įrašome šį kodą į failą, kurį pavadinsime scan-album.sh ir suteikiame jam leidimą vykdyti. Kai jį paleisime, jis sukurs pakatalogį, kuriame bus mūsų nuskaitytos nuotraukos. Nepamirškite pakeisti parametrų reikšmių pagal savo poreikius.

Po scenarijaus būtinai perskaitykite keletą pasiūlymų.

#! / bin / bash
# Duomenys parinktims

VERBOSE="" # žr. būsenos pranešimą: "" yra ne ; "-v" yra taip
PROGRESS="-p" # rodyti progresą "" yra ne ; "-p" yra taip

# Šiuos parametrus pateikia scanimage --help jūsų skaitytuvui
#Įrenginys: jei yra tik vienas skaitytuvas, jo nereikia, įdėkite DEV=""
#DEV="xerox_mfp:libusb:001:003"

DEV=""
MODE="--režimo spalva"
RESOLUTION="--rezoliucija 600 dpi"

#geometry, pvz., 130x180 mm nuotrauka
#location viršutinės kairiosios viršūnės skaitytuve

x0 = 0
y0=0
plotis = 180
aukštis = 130

#galimybės:

L="-l $x0"
T="-t $y0"
WIDTH="-x $plotis"
AUKŠTAS="-y $aukštas"

# visi parametrai kartu:

PARAMETRAI=" $DEV $VERBOSE $PROGRESS $MODE $REOLIUTION $L $T $PLOTIS $AUKŠTIS"

# Albumo pavadinimas. Sukurkite pakatalogį su jo pavadinimu:

ALBUM="Atostogos_1989"

# Dėl saugumo nieko nedarau, jei katalogas jau yra

mkdir $ALBUM

jei [ "$?" = "1" ]; tada
100 išėjimas
fi

# Pagrindinis nuotraukų pavadinimas (pagal dir)

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

funkcija klausimas(){
išmetė "----------------------------------------------- -------------------------"
praleisti
išmetė "******************************"
echo "Nuskaitytų nuotraukų skaičius: " "$I"
išmetė "******************************"
echo -e "Paspauskite:n * n, kad išeitumėte. * Kitas mygtukas nuskaityti."
praleisti
skaityti -s -n1 -p "Nuskaityti naują nuotrauką?" mygtuko paspaudimas
praleisti
}

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

# Pradėti

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

Aš = 0

klausimas

while [ "$keypress" != "n" ]; daryti
# nauja nuotrauka, kurią reikia nuskaityti
tegul "I += 1"
PAVADINIMAS=$FILE$I
nuskaitytas vaizdas $PARAMETERS| konvertuoti - $NAME.jpg
klausimas
Done

Pasiūlymai

Naudojant didelę skiriamąją gebą, kaip nurodyta pavyzdyje, nuskaitymas sulėtėja.

Atminkite, kad jei norite spausdinti nuotrauką ant popieriaus, jums reikia apie 250 taškų colyje. Jei nuskenuojant nuotraukas siekiama jas spausdinti tokio pat dydžio kaip ir originalas, užtenka 250 raiškos. Norint peržiūrėti monitoriuje, pakanka 100. Didesnė raiška būtų naudinga plėtrai.

Patartina iš anksto paruošti nuotraukų krūvą, kad kiekviena nuotrauka būtų dešine puse į viršų. Taip negaišite laiko įdėdami jį į skaitytuvą, kad jie nebūtų pasukti 180º.

Kalibruojant geometrijos parametrų matavimus, patartina stebėti, kurioje pozicijoje turi būti dedamas originalas, kad skaitmeniniai vaizdai nebūtų „apversti“. Mano atveju apatinė nuotraukos dalis eina šalia „l“ ašies.

Jei prijungtas tik vienas skaitytuvas, nenaudokite parinkties -d. Scenarijuje tai yra DEV=»»

Kartais „xerox_mfp:libusb:001:003“ skaičiai keičiasi ir turėsite juos keisti kiekvieną kartą, kai naudojate scenarijų.

Kopijuodami scenarijų būkite atsargūs su brūkšneliais ir kabutėmis. Brūkšneliai (minuso ženklas) gali būti vienas arba du kartu, priklausomai nuo pasirinkimo; Klaviatūros kabutės yra dvigubos, jos nėra tos, kurias deda kai kurie teksto rengyklės, pvz., „LibreOffice“.

Saugumo sumetimais scenarijus nesukuria katalogo, jei jis jau yra, kad neperrašytų failų, jei tokių yra. Tokiu atveju jis sustoja.

Jei nuotraukų albumas senas, nesigailėkite, jei nuotraukose pilna plaukų, trūksta raukšlių ar trūksta kilogramų:-


Palikite komentarą

Jūsų elektroninio pašto adresas nebus skelbiamas. Privalomi laukai yra pažymėti *

*

*

  1. Atsakingas už duomenis: Miguel Ángel Gatón
  2. Duomenų paskirtis: kontroliuoti šlamštą, komentarų valdymą.
  3. Įteisinimas: jūsų sutikimas
  4. Duomenų perdavimas: Duomenys nebus perduoti trečiosioms šalims, išskyrus teisinius įsipareigojimus.
  5. Duomenų saugojimas: „Occentus Networks“ (ES) talpinama duomenų bazė
  6. Teisės: bet kuriuo metu galite apriboti, atkurti ir ištrinti savo informaciją.

  1.   Jaunesnieji Calderonas sakė

    Oho! Kokia gera pamoka!
    Nemaniau, kad galite padaryti tiek daug dalykų su bash xD
    Kiekvieną dieną sužinai vis daugiau!
    Dėkojame už indėlį!
    Neturiu skaitytuvo, bet jei gausiu, tuoj pabandysiu :)

  2.   Rube sakė

    Kaip geras šis indėlis man labai padės suskaitmeninti užrašus, tikiuosi, kad tai pagerės, galvoju apie funkciją nuskaityti visą failą ir aptikti nuskaityto objekto dydį, nes mes priklausome nuo vaizdo magijos. gali konvertuoti jį į djvu arba pdf ir taip sukurti vieną failą. Na, aš tiesiog slampinėjau. Labai ačiū už indėlį.

  3.   myliu tai sakė

    Koks didelis malonumas, labai ačiū, kad dalinatės.