Ero sivun ”Convert” versioiden välillä

Siirry navigaatioon Siirry hakuun
8 231 merkkiä lisätty ,  17. huhtikuuta 2022
p
käyttö esimerkki lisätty, huomio-kohdat muutettu Huomautus-mallineiksi
p (Luokka:Tiedostomuotomuunnokset)
p (käyttö esimerkki lisätty, huomio-kohdat muutettu Huomautus-mallineiksi)
 
(37 välissä olevaa versiota 7 käyttäjän tekeminä ei näytetä)
Rivi 1: Rivi 1:
Convert on [[ImageMagick]]-pakettiin kuuluva komentoriviohjelma, jota käytetään kuvatiedostojen muuttamiseen muodosta toiseen. Samalla se mahdollistaa myös mm. kuvan koon muuttamisen ja muunkinlaisen kuvankäsittelyn.
{{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===
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ä valitsimella <tt>-size</tt>, esim.
Tulevan kuvan koko voidaan antaa myös pikseleinä, esim.
  convert -size 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.
 
<syntaxhighlight lang="bash">
#!/bin/bash
for a in *.jpg;
do convert -limit memory 512mb $a -resize 70% -gravity southeast -stroke '#000C' \
-strokewidth 2 -annotate 0 '(c) Matti Meikäläinen' -stroke none \
-fill white -annotate 0 '(c) Matti Meikäläinen' $a; \
done
</syntaxhighlight>
 
===Läpinäkyvyys===
Esim. jos haluaa muuttaa taustavärin kuvasta tai logosta läpinäkyväksi, ensiksi esim. [[GIMP]]-kuvankäsittelyohjelmassa, voi etukäteen, ainakin tarkistaa taustavärin [[RGB]]-arvon, ja tai muuttaa halutun taustavärin haluamakseen, kuten allaolevassa esimerkissä läpinäkyväksi halutut alueet on väritetty punaisella, jonka RGB-arvoon viittaamalla vain se väri muuttuu läpinäkyväksi.
 
  $ convert kuva_punaisella_taustalla.png -transparent "rgb(180,42,42)" kuva_läpinäkyvällä_taustalla.png


Täydellinen lista komennolle annettavista parametreistä löytyy [http://www.imagemagick.org/script/convert.php ImageMagickin dokumentaatiosta].
===Tekijänoikeus-merkintä valokuviin===
Yhden kuvan copyright-merkintä tapahtuu komennolla:
 
$ 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' kuva.jpg
 
Luodaan [[Bash-skriptaus|Bashillä]] esimerkki, joka muuntaa hakemistollisen kuvia copyright merkinnällä toiseen kansioon.
 
<syntaxhighlight lang="bash">
#!/bin/bash
for a in *.jpg;
do convert $a -gravity southeast -stroke '#000C' \
-strokewidth 2 -annotate 0 '(c) Matti Meikäläinen' -stroke none \
-fill white -annotate 0 '(c) Matti Meikäläinen' merkityt/$a; \
done
</syntaxhighlight>
 
Esimerkkiohjelma voidaan tallentaa vaikka nimelle <tt>copyright.sh</tt> ja sille voidaan antaa [[chmod|suoritusoikeudet]] komennolla
chmod u+rx copyright.sh
Tämän jälkeen komentojono ajettaisiin komennolla
./copyright.sh
 
===PDF-asiakirjan muunnokset===
<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
$ 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.
$ convert -density 300 asiakirja.pdf asiakirja.png
 
====Asiakirjan koon pienentäminen====
Mikäli tiedoston koko halutaan pitää mahdollisimman pienenä, voidaan käyttää valitsinta <tt>-monochrome</tt>, joka muuttaa kuvan mustavalkoiseksi.
 
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
 
Seuraavaksi mustavalkokuvat muutetaan yhdeksi pdf-tiedostoksi
$ convert *.png kirje.pdf
 
Tällä tavalla voidaan saada asiakirjan koko jopa kuusi kertaa pienemmäksi.
 
{{Huomautus|Jos muutettavat kuvat ovat hyvälaatuisia (tarkkuus 400dpi tai parempi) ja niitä on paljon (yli 10), vaatii [[PDF]]-tiedoston luominen huomattavasti resursseja tietokoneelta. Lisäksi saatu [[PDF]]-tiedosto on suuri, ellei kyseessä ole mustavalkotiedosto, eli ei sovellu esimerkiksi sähköpostin liitteeksi. Tiedoston koon pitämiseksi pienenä on käytettävä sopivaa kuvaformaattia, vähennettävä tarkkuutta ja muutettava mustavalkoiseksi mikäli mahdollista.}}
 
Nyrkkisääntönä voi pitää että:
* PNG-formaatti on hyvä tiedostoille joissa on paljon laajoja yksivärisiä alueita, esimerkiksi: laskut ja mustavalkomuunnetut asiakirjat.
* JPG-formaatti on hyvä tiedostoille joissa on paljon värejä ja sävyjä, esimerkiksi: kuvat ja skannaukset.
 
=== Rajaaminen ===
<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.
 
Vivun rakenne:
{|<!--taulukon määrite--> style="text-align:center"
!
! toiminto
! leveys
!
! korkeus
!
! etäisyys vasemmasta reunasta
!
! oikeasta reunasta
!
|-
<!-- taulukko alkaa tästä -->
| || -crop|| 800 || x || 600 || + || 100 || + || 200
|-
|}
 
 
Jos lähtöpistettä ei ole määritetty, niin <tt>convert</tt> jakaa kuvan määritelmän kokoisiin paloihin.
 
Esim.
$ 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.
 
=== Kääntäminen ===
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.
 
{|<!--taulukon määrite--> style="text-align:left"
!
! Ohjausmerkki
! Toiminnon kuvaus
|-
<!-- taulukko alkaa tästä -->
 
| || + || Kääntää kuvaa myötäpäivään
|-
| || - || Kääntää kuvaa vastapäivään
|-
| || > || Kääntää kuvaa vain, jos leveys on korkeutta suurempi
|-
| || < || Kääntää kuvaa vain, jos korkeus on leveyttä suurempi
|-
|}
 
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.
 
{{Huomautus|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 [https://www.imagemagick.org/script/command-line-options.php#limit -limit].  
 
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ää <tt>convert</tt>ia rohmuamasta kaikkea muistia käyttämällä valitsinta <tt>-limit</tt>:
$ convert -limit memory 512mb *.jpg albumi.png
 
Käytössä olevat rajoitukset saa näkyviin komennolla:
$ convert -list resource
 
Mahdolliset rajoituskohteet:
{|<!--taulukon määrite--> style="text-align:left"
!
! Valitsin
! Vaihtoehto
! Oletuskoko
!
! Vaikutus
|-
<!-- taulukko alkaa tästä -->
| || -limit|| || || ||
|-
| || || area ||  ?  || ---- || ? ||
|-
| || || disk || ääretön || ---- || rajoittaa välimuistina käytettävän tiedoston kokoa ||
|-
| || || file || 768kpl || ---- || rajoittaa käsiteltävien tiedostojen määrää || ||
|-
| || || map || 4046MB || ---- || rajoittaa [[swap]]-osion käyttöä || ||
|-
| || || memory || 1024MB || ---- || rajoittaa keskusmuistin varauksen kokoa || ||
|-
|}


== Katso myös ==
== Katso myös ==
*[[Portaali:Kuvankäsittely]]
*[[Portaali:Kuvankäsittely]]
== Aiheesta muualla ==
Täydellinen lista komennolle annettavista parametreistä löytyy [https://www.imagemagick.org/script/convert.php ImageMagickin dokumentaatiosta].


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

muokkausta

Navigointivalikko