Ero sivun ”Convert” versioiden välillä

Siirry navigaatioon Siirry hakuun
597 merkkiä lisätty ,  8. joulukuuta 2020
p
lähdekoodi
p (Kuvien pienentäminen)
p (lähdekoodi)
(12 välissä olevaa versiota 3 käyttäjän tekeminä ei näytetä)
Rivi 1: Rivi 1:
Convert on [[ImageMagick]]-pakettiin kuuluva [[komentorivi]]ohjelma, jota käytetään kuvatiedostojen muuttamiseen muodosta toiseen. Samalla se mahdollistaa myös mm. kuvan koon muuttamisen ja muunkinlaisen kuvankäsittelyn. Convert on erityisen hyödyllinen silloin, kun tehdään muutoksia suuriin kuvajoukkoihin.
{{pienaakkonen}}
{{Ohjelma
| nimi=convert
| kuva=
| kuvateksti=
| lisenssi=[[Apache-lisenssi|Apache 2.0]]
| käyttöliittymä=teksti
| kotisivu=[https://imagemagick.org/script/convert.php imagemagick.org/script/convert.php]
| lähdekoodi=[https://github.com/ImageMagick github.com/ImageMagick]
}}
 
'''convert''' on [[ImageMagick]]-pakettiin kuuluva [[komentorivi]]ohjelma, jota käytetään kuvatiedostojen muuttamiseen muodosta toiseen. Samalla se mahdollistaa myös mm. kuvan koon muuttamisen ja muunkinlaisen kuvankäsittelyn. <tt>convert</tt> on erityisen hyödyllinen silloin, kun tehdään muutoksia suuriin kuvajoukkoihin.


== Käyttö ==
== Käyttö ==
Ohjelmaa käytetään yleensä yksinkertaisesti muuttamaan kuva muodosta toiseen. Tämä onnistuu yksinkertaisesti komennolla
Ohjelmaa käytetään yleensä yksinkertaisesti muuttamaan kuva muodosta toiseen. Tämä onnistuu yksinkertaisesti komennolla
  convert lähde kohde
  $ convert lähde kohde
Esimerkiksi <tt>mokki.png</tt> muutettaisiin jpg-muotoon komennolla
Esimerkiksi <tt>mokki.png</tt> muutettaisiin jpg-muotoon komennolla
  convert mokki.png mokki.jpg
  $ convert mokki.png mokki.jpg
Convert siis osaa itse päätellä tiedostopäätteen avulla tiedoston muodon, eikä mitään ylimääräisiä [[valitsin|valitsimia]] tarvitse antaa. Tässä on syytä huomata, että <tt>convert</tt> ei myöskään poista alkuperäistä tiedostoa vaan jättää sen koskemattomaksi.
<tt>convert</tt> siis osaa itse päätellä tiedostopäätteen avulla tiedoston muodon, eikä mitään ylimääräisiä [[valitsin|valitsimia]] tarvitse antaa. Tässä on syytä huomata, että <tt>convert</tt> ei myöskään poista alkuperäistä tiedostoa vaan jättää sen koskemattomaksi.
 
Mikäli haluat muuttaa suuren määrän tiedostoja muodosta toiseen, kokeile [[mogrify]]-komentoa.


===Koon muuttaminen===
===Koon muuttaminen===
Muunnoksen aikana voidaan myös vaikuttaa mm. kuvan kokoon. Tämä onnistuu <tt>-resize</tt>-valitsimella: esimerkiksi luotava kuva olisi vain puolet alkuperäisen kuvan koosta (esim. 1000x1000 -> 500x500) komennolla
Muunnoksen aikana voidaan myös vaikuttaa mm. kuvan kokoon. Tämä onnistuu <tt>-resize</tt>-valitsimella: esimerkiksi luotava kuva olisi vain puolet alkuperäisen kuvan koosta (esim. 1000x1000 -> 500x500) komennolla
  convert -resize 50% mokki.png mokki.jpg
  $ convert -resize 50% mokki.png mokki.jpg
Tulevan kuvan koko voidaan antaa myös pikseleinä, esim.
Tulevan kuvan koko voidaan antaa myös pikseleinä, esim.
  convert -resize 1024x768 mokki.png mokki.tiff
  $ convert -resize 1024x768 mokki.png mokki.tiff
 
Luodaan [[Bash]]illä esimerkki, joka muuntaa hakemistollisen kuvia pienemmäksi (70%), sekä lisää copyright-merkinnät kuviin.


Luodaan [[Bash]]illä esimerkki, joka muuntaa hakemistollisen kuvia pienemmäksi (70%), sekä lisää copyright merkinnät kuviin.
<source lang=bash>
  #!/bin/bash
  #!/bin/bash
  for a in *.jpg;  
  for a in *.jpg;  
Rivi 21: Rivi 36:
  -fill white -annotate 0 '(c) Matti Meikäläinen' $a; \
  -fill white -annotate 0 '(c) Matti Meikäläinen' $a; \
  done
  done
</source>


===Copyright merkintä valokuviin===
===Copyright merkintä valokuviin===
Yhden kuvan copyright merkintä tapahtuu komennolla:
Yhden kuvan copyright merkintä tapahtuu komennolla:


  convert kuva.jpg -gravity southeast -stroke '#000C' -strokewidth 2 \
  $ convert kuva.jpg -gravity southeast -stroke '#000C' -strokewidth 2 \
  -annotate 0 '(c) Matti Meikäläinen' -stroke none -fill white \
  -annotate 0 '(c) Matti Meikäläinen' -stroke none -fill white \
  -annotate 0 '(c) Matti Meikäläinen' kuva.jpg
  -annotate 0 '(c) Matti Meikäläinen' kuva.jpg
Rivi 31: Rivi 47:
Luodaan [[Bash-skriptaus|Bashillä]] esimerkki, joka muuntaa hakemistollisen kuvia copyright merkinnällä toiseen kansioon.
Luodaan [[Bash-skriptaus|Bashillä]] esimerkki, joka muuntaa hakemistollisen kuvia copyright merkinnällä toiseen kansioon.


<source lang=bash>
  #!/bin/bash
  #!/bin/bash
  for a in *.jpg;  
  for a in *.jpg;  
Rivi 37: Rivi 54:
  -fill white -annotate 0 '(c) Matti Meikäläinen' merkityt/$a; \
  -fill white -annotate 0 '(c) Matti Meikäläinen' merkityt/$a; \
  done
  done
</source>
Esimerkkiohjelma voidaan tallentaa vaikka nimelle <tt>copyright.sh</tt> ja sille voidaan antaa [[chmod|suoritusoikeudet]] komennolla
Esimerkkiohjelma voidaan tallentaa vaikka nimelle <tt>copyright.sh</tt> ja sille voidaan antaa [[chmod|suoritusoikeudet]] komennolla
  chmod u+rx copyright.sh
  chmod u+rx copyright.sh
Rivi 43: Rivi 62:


===PDF-asiakirjan muunnokset===
===PDF-asiakirjan muunnokset===
Convert mahdollistaa myös usean skannatun sivun muuttamisen yhdeksi [[PDF]]-asiakirjaksi. Luettavuuden vuoksi olisi hyvä jos lähdemateriaalin tarkkuus olisi vähintään 150dpi.  
<tt>convert</tt> mahdollistaa myös usean skannatun sivun muuttamisen yhdeksi [[PDF]]-asiakirjaksi. Luettavuuden vuoksi olisi hyvä jos lähdemateriaalin tarkkuus olisi vähintään 150dpi.  


Jos muunnettavat kuvat ovat samassa hakemistossa ja samassa tiedostomuodossa (esim. jpg), niin muuttaminen onnistuu kyseisessä hakemistossa komennolla
Jos muunnettavat kuvat ovat samassa hakemistossa ja samassa tiedostomuodossa (esim. jpg), niin muuttaminen onnistuu kyseisessä hakemistossa komennolla
  convert *.jpg mökki-albumi.pdf
  $ convert *.jpg mökki-albumi.pdf


Mikäli PDF tiedosto halutaan muuntaa kuvaksi on kannattaa käyttää valitsinta <tt>-density</tt>, koska oletusresoluutio on niin huono. Valitsimen <tt>-density</tt> arvoksi sopii hyvin 300, joka on riittävän tarkka pienimuotoiseen kuvankäsittelyyn ja lukemiseen.
Mikäli PDF tiedosto halutaan muuntaa kuvaksi on kannattaa käyttää valitsinta <tt>-density</tt>, koska oletusresoluutio on niin huono. Valitsimen <tt>-density</tt> arvoksi sopii hyvin 300, joka on riittävän tarkka pienimuotoiseen kuvankäsittelyyn ja lukemiseen.
  convert -density 300 asiakirja.pdf asiakirja.png
  $ convert -density 300 asiakirja.pdf asiakirja.png




Rivi 57: Rivi 76:


Oletetaan että kyseessä on vaikka monisivuinen skannattu kirje. Ensin muutetaan tiedostot mustavalkoiseksi png-kuvaksi. Vaikka kohdetiedosto onkin määritetty muotoon <tt>kirje.png</tt>, syntyy muunnoksessa useita tiedostoja (kirje-1.png, kirje-2.png... jne)
Oletetaan että kyseessä on vaikka monisivuinen skannattu kirje. Ensin muutetaan tiedostot mustavalkoiseksi png-kuvaksi. Vaikka kohdetiedosto onkin määritetty muotoon <tt>kirje.png</tt>, syntyy muunnoksessa useita tiedostoja (kirje-1.png, kirje-2.png... jne)
  convert -monochrome *.jpg kirje.png
  $ convert -monochrome *.jpg kirje.png


Seuraavaksi mustavalkokuvat muutetaan yhdeksi pdf-tiedostoksi
Seuraavaksi mustavalkokuvat muutetaan yhdeksi pdf-tiedostoksi
  convert *.png kirje.pdf
  $ convert *.png kirje.pdf


Tällä tavalla voidaan saada asiakirjan koko jopa kuusi kertaa pienemmäksi.
Tällä tavalla voidaan saada asiakirjan koko jopa kuusi kertaa pienemmäksi.
Rivi 71: Rivi 90:


=== Rajaaminen ===
=== Rajaaminen ===
Convert mahdollistaa myös kuvien rajaamisen komentoriviltä. Rajaaminen onnistuu käyttämällä [http://www.imagemagick.org/script/command-line-options.php#crop -crop] vipua.  
<tt>convert</tt> mahdollistaa myös kuvien rajaamisen komentoriviltä. Rajaaminen onnistuu käyttämällä [https://www.imagemagick.org/script/command-line-options.php#crop -crop] vipua.  
Ensiksi määritetään uuden kuvan koko ja sitten rajaamisen lähtöpiste.  
Ensiksi määritetään uuden kuvan koko ja sitten rajaamisen lähtöpiste.  


Rivi 93: Rivi 112:


    
    
Jos lähtöpistettä ei ole määritetty, niin convert jakaa kuvan määritelmän kokoisiin paloihin.
Jos lähtöpistettä ei ole määritetty, niin <tt>convert</tt> jakaa kuvan määritelmän kokoisiin paloihin.


Esim.
Esim.
  convert mokki.png +repage -crop 800x600+100+200 mokki.png
  $ convert mokki.png +repage -crop 800x600+100+200 mokki.png
Komento rajaa alkuperäisestä kuvasta 800x600 pikselin kokoisen alueen, jonka vasen yläreuna 100 pikseliä oikealla ja 200 pikseliä alhaalla. Optio <tt>+repage</tt> pyyhkii pois virtuaalisen pohjan ja on siksi hyödyllinen käsiteltäessä gif- ja joitain png-kuvia.
Komento rajaa alkuperäisestä kuvasta 800x600 pikselin kokoisen alueen, jonka vasen yläreuna 100 pikseliä oikealla ja 200 pikseliä alhaalla. Optio <tt>+repage</tt> pyyhkii pois virtuaalisen pohjan ja on siksi hyödyllinen käsiteltäessä gif- ja joitain png-kuvia.


=== Kääntäminen ===
=== Kääntäminen ===
Joissain tapauksissa on järkevää kääntää kuvaa ruudun tasossa. Convert mahdollistaa kuvan kääntämisen pystyyn valitsimen [http://www.imagemagick.org/script/command-line-options.php#rotate -rotate] avulla.
Joissain tapauksissa on järkevää kääntää kuvaa ruudun tasossa. <tt>convert</tt> mahdollistaa kuvan kääntämisen pystyyn valitsimen [https://www.imagemagick.org/script/command-line-options.php#rotate -rotate] avulla.


<tt>-rotate</tt> käntää kuvaa ruudulla osoitetun asteluvun verran. Ehtomerkkejä <tt> < > </tt> käytettäessä, on hyvä käyttää myös lainausmerkkejä, jotta komentotulkki ei tulkitse komentoa väärin.
<tt>-rotate</tt> käntää kuvaa ruudulla osoitetun asteluvun verran. Ehtomerkkejä <tt> < > </tt> käytettäessä, on hyvä käyttää myös lainausmerkkejä, jotta komentotulkki ei tulkitse komentoa väärin.
Rivi 122: Rivi 141:
|}
|}


esim
esimerkiksi
  convert -rotate "-90>" kukka.jpg pysty-kukka.jpg
 
Komento kääntää kuvaa vastapäivään 90 astetta vain, jos alkuperäisen kuvan leveys on korkeutta suurempi.
  $ convert -rotate "-90>" kukka.jpg pysty-kukka.jpg
 
Komento kääntää kuvaa vastapäivään 90-astetta vain, jos alkuperäisen kuvan leveys on korkeutta suurempi.


== HUOM! ==
== HUOM! ==
Suuria kuvajoukkoja käsiteltäessä, sekä isoa [[PDF]]-tiedostoa luotaessa voi helposti ongelmaksi tulla muistin määrän riittämättömyys, koska convert yrittää käsitellä kaikkia muunnoksia kerralla. Oireena on järjestelmän hidastuminen ja yleensä Linux [[kill|tappaa]] [[prosessi]]n kesken.
Suuria kuvajoukkoja käsiteltäessä, sekä isoa [[PDF]]-tiedostoa luotaessa voi helposti ongelmaksi tulla muistin määrän riittämättömyys, koska <tt>convert</tt> yrittää käsitellä kaikkia muunnoksia kerralla. Oireena on järjestelmän hidastuminen ja yleensä Linux [[kill|tappaa]] [[prosessi]]n kesken.


Vaihtoehtona on rakentaa skripti, joka käsittelee jokaisen kuvan yksitellen, lisätä lisää muistia koneeseen tai käyttää valitsinta [http://www.imagemagick.org/script/command-line-options.php#limit -limit].  
Vaihtoehtona on rakentaa skripti, joka käsittelee jokaisen kuvan yksitellen, lisätä lisää muistia koneeseen tai käyttää valitsinta [https://www.imagemagick.org/script/command-line-options.php#limit -limit].  


Lisää Imagemagic-komentojonojen kirjoittamisesta löytyy [http://linux.fi/foorumi/index.php?topic=505.0 Linux.fin keskustelupalstan viestiketjusta].
Lisää Imagemagic-komentojonojen kirjoittamisesta löytyy [https://foorumi.linux.fi/t/image-magick-kuvien-massakasittely/500/2 Linux.fin keskustelupalstan viestiketjusta].


Esimerkiksi muunnettaessa kuvia toiseen formaattiin voi olla hyödyllistä estää convertia rohmuamasta kaikkea muistia käyttämällä valitsinta <tt>-limit</tt>:
Esimerkiksi muunnettaessa kuvia toiseen formaattiin voi olla hyödyllistä estää <tt>convert</tt>ia rohmuamasta kaikkea muistia käyttämällä valitsinta <tt>-limit</tt>:
  convert -limit memory 512mb *.jpg albumi.png
  $ convert -limit memory 512mb *.jpg albumi.png


Käytössä olevat rajoitukset saa näkyviin komennolla:
Käytössä olevat rajoitukset saa näkyviin komennolla:
  convert -list resource
  $ convert -list resource


Mahdolliset rajoituskohteet:
Mahdolliset rajoituskohteet:
Rivi 167: Rivi 188:


== Aiheesta muualla ==
== Aiheesta muualla ==
Täydellinen lista komennolle annettavista parametreistä löytyy [http://www.imagemagick.org/script/convert.php ImageMagickin dokumentaatiosta].
Täydellinen lista komennolle annettavista parametreistä löytyy [https://www.imagemagick.org/script/convert.php ImageMagickin dokumentaatiosta].


{{ImageMagick}}
{{ImageMagick}}
3 173

muokkausta

Navigointivalikko