Kuvien käsittelyä komentoriviltä Linuxissa

Artikkeleita ja esimerkkejä siitä, miten kuvia voi käsitellä komentoriviltä.

ti 11.11.2025 2.24 | CS

PDF-tiedoston luonti valokuvista

Jos käytössä on skanneri, PDF-ominaisuus voi olla sisäänrakennettuna tai mukana skannerin ohjelmistossa.

Melko usein minulle käy niin, että olen kuvannut sivut kännykällä ja myöhemmin tulee tarve lähettää sivut esimerkiksi sähköpostitse. Äskettäin tutkin, mikä olisi nopea tapa muuntaa irtonaiset valokuvat PDF-tiedostoksi.

Jos kuvatiedostojen kuvasuhde on suhteellisen lähellä A4-paperin kuvasuhdetta (esim. 3:4) ja sivut on kuvattu niin että valokuvassa paperin ympärillä on pari senttiä tyhjää tilaa, niin seuraava resepti toimii useimmiten hyvin:

Luodaan uusi hakemisto ja tehdään kuvista kopio kyseisen hakemiston sisään (kopio siksi, että jos muunnos ei ole hyvä, niin lähdetiedostot ovat tallessa, ja voidaan tehdä uusi yritys eri parametreilla).

Muutetaan tiedostonimet kuvaushetken mukaiseksi (ei pakollista mutta usein kännykän tekemät tiedostonimet muuttuvat selkeämmäksi):

jhead -n%Y-%m-%d---%H.%M.%S *jpg

Pienennetään kuvia niin että maksimileveys on 2000 pistettä ja maksimikorkeus samoin 2000 pistettä (kuvasuhde säilyttäen):

for i in *jpg; do echo $i; convert $i -resize 2000x2000 $i; done

Laitetaan kuvat PDF-tiedostoon, jonka sivukoko on A4:

img2pdf --output asiakirja.pdf --pagesize A4 --fit fill --auto-orient p1.jpg p2.jpg p3.jpg

Valmis. Lopuksi tarkistetaan, näkyykö paperit PDF-tiedostossa hyvin.

to 6.11.2025 20.13 | CS

Usean kuvan formaatin muuntaminen kerralla

Tämä käsky muuntaa kaikki työhakemistossa olevat webp-kuvat jpg-muotoon. Tiedostopääte vaihdetaan uuden formaatin mukaiseksi.

mogrify -format jpg *.webp

ti 11.11.2025 3.03 | CS

Kuvien nimen vaihto Jhead-ohjelmalla

JPEG-valokuvat sisältävät yleensä EXIF-tietueen, joka sisältää muun muassa kuvaushetken aikaleiman. Kun siirrän kuvia kamerasta tai puhelimesta kuva-arkistoon, muutan yleensä tiedostonimet niin, että kuvia on helppo selata aikajärjestyksessä. Muutan kuvien nimet yleensä tällä jhead-komennolla:

jhead -n%Y-%m-%d---%H.%M.%S photo.jpg

Ylläoleva käsky lukee päiväyksen ja ajan EXIF-tietueesta ja muuttaa tiedostonimen niin, että nimessä on ensin vuosi, kuukausi ja päivä, ja sitten tunnit, minuutit ja sekunnit. Tässä on joitakin esimerkkejä lopullisista tiedostonimistä:

2021-03-22---20.00.00.jpg
2021-03-22---20.01.22.jpg
2021-03-22---20.02.35.jpg
2021-03-23---20.01.14.jpg
2021-03-23---20.01.48.jpg

(Nämä kuvat on otettu maaliskuun 22. ja 23. päivänä klo 20 paikkeilla.)

Jos hakemiston kaikki kuvat nimetään uudelleen tällä kaavalla, useimmat ohjelmat ja hakemistolistaukset näyttävät kuvat automaattisesti luonnollisessa järjestyksessä, koska nyt tiedostonimien aakkosellinen järjestys vastaa kuvien aikajärjestystä.

to 6.11.2025 20.15 | CS

Kuvien koon muutos convert-ohjelmalla

Jos haluamme pienentää kuvaa niin, että leveys on korkeintaan 1200 ja korkeus korkeintaan 1200, mutta kuvasuhde säilyy:

convert pic.jpg -resize 1200x1200 pic-hd.jpg

Jos haluamme pienentää kuvan ja tallentaa pienennetyn version alkuperäisen paikalle (alkuperäinen ylikirjoitetaan):

convert pic.jpg -resize 1200x1200 pic.jpg

Voimme laajentaa tätä operaatioksi, jolla saamme työhakemiston kaikki kuvat pienennettyä kerralla (alkuperäisistä kuvista kannattaa ottaa varmuuskopio ennen tätä operaatiota):

for i in *jpg; do echo $i; convert $i -resize 1200x1200 $i; done
Click anywhere to close