Muokataan sivua Convert

Siirry navigaatioon Siirry hakuun
Varoitus: Et ole kirjautunut sisään. IP-osoitteesi näkyy julkisesti kaikille, jos muokkaat. Jos kirjaudut sisään tai luot tunnuksen, muokkauksesi yhdistetään käyttäjänimeesi ja saat paremman käyttökokemuksen.

Kumoaminen voidaan suorittaa. Varmista alla olevasta vertailusta, että haluat saada aikaan tämän lopputuloksen, ja sen jälkeen julkaise alla näkyvät muutokset.

Nykyinen versio Oma tekstisi
Rivi 1: Rivi 1:
{{pienaakkonen}}
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.
{{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
<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.
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.
 
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ä valitsimella <tt>-size</tt>, esim.
$ convert -resize 1024x768 mokki.png mokki.tiff
  convert -size 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
 
===Tekijänoikeus-merkintä valokuviin===
Yhden kuvan copyright-merkintä tapahtuu komennolla:


$ convert kuva.jpg -gravity southeast -stroke '#000C' -strokewidth 2 \
===PDF-asiakirjan tekeminen===
-annotate 0 '(c) Matti Meikäläinen' -stroke none -fill white \
Convert mahdollistaa myös usean skannatun sivun muuttamisen yhdeksi [[PDF]]-asiakirjaksi. Luettavuuden vuoksi olisi hyvä jos lähdemateriaalin tarkkuus olisi vähintään 150dpi.  
-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
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.
$ convert -density 300 asiakirja.pdf asiakirja.png


====Asiakirjan koon pienentäminen====
====Asiakirjan koon pienentäminen====
Mikäli tiedoston koko halutaan pitää mahdollisimman pienenä, voidaan käyttää valitsinta <tt>-monochrome</tt>, joka muuttaa kuvan mustavalkoiseksi.  
Mikäli tiedoston koko halutaan pitää mahdollisimman pienenä voi käyttää liäoptiota <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)
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 -monochrome *.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.


{{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.}}
'''HUOM!'''  Jos muutettavat kuvat ovat png-muodossa, ne 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. Siksi kannattaakin käyttää jotain muuta lähdeformaattia kuin png:.
 
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 ==
Rivi 189: Rivi 37:


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


{{ImageMagick}}
{{ImageMagick}}
Wikin materiaali on kaikkien vapaasti käytettävissä Creative Commons 3.0 - nimi mainittava -lisenssin alaisuudessa. TEKIJÄNOIKEUDEN ALAISEN MATERIAALIN KÄYTTÄMINEN ILMAN LUPAA ON EHDOTTOMASTI KIELLETTYÄ!

Muokataksesi tätä sivua vastaa alla olevaan kysymykseen (lisätietoja):

Peruuta Muokkausohjeet (avautuu uuteen ikkunaan)

Tämä sivu kuuluu seuraavaan piilotettuun luokkaan:

Noudettu kohteesta ”https://www.linux.fi/wiki/Convert