L4L.be

...because open source matters

  • Increase font size
  • Default font size
  • Decrease font size
Home Linux Documentatie Linux op de desktop Grafische bewerkingen op de command-line met Imagemagick

Grafische bewerkingen op de command-line met Imagemagick

E-mail Print PDF

Hoewel je het wellicht niet zult verwachten kun je op de commando regel ook heel veel grafische bewerkingen doen. Dit is niet alleen in de gewone situaties handig, maar zeker ook als je dingen geautomatiseerd (in batch) wil doen.

Met ImageMagick kun je allerlei bewerkingen doen als het veranderen van kleuren, bijschriften maken, converteren, schalen en vele andere zaken.

Basis manipulaties

ImageMagick bevat een hele handige utility: convert. Hiermee kun je allerlei basis manipulaties doen zoals bijvoorbeelt het aanpassen van de grootte, het veranderen van bestandsformaat, roteren en het toevoegen van bepaalde effecten.

Om een afbeelding voor een website om te vormen naar een thumbnail, kun je het volgende commando gebruiken:

convert -sample 80x60 big.jpg thumb.jpg

Waarbij big.jpg het originele plaatje is en thumb.jpg het resultaat. In plaats van het aantal pixels kun je ook procenten gebruiken:

convert -sample 15%x15% big.jpg thumb.jpg

De utility convert kan ook de afbeelding roteren of flippen.

convert -rotate 90 image_0001.tiff output.tiff

De -rotate parameter roteert standaard de afbeelding kloksgewijs bij het aantal graden wat je opgeeft. Als je wilt dat de rotatie tegen de klok in moet, gebruik je een negatief nummer.

Flippen (dus afbeelding ondersteboven keren) doe je met de flip parameter, deze keert horizontaal:

convert -flip me.jpg me_flipped.jpg

Horizontaal kan ook:

convert -flop me.jpg me_flopped.jpg

Met convert kun je ook het bestand omzetten van het ene bestandsformaat naar de andere:

convert one.jpg newone.png

Bij een grotere collectie kun je hetzelfde doen met de utility mogrify, deze accepteerd wildcards.

mogrify -format tiff *.png

Met mogrify kun je eveneens thumbnails maken:

mogrify -sample 80x60 *.jpg

Let wel op: bovenstaand commando overschrijft je originele bestanden ! Als je het origineel wilt behouden, moet je een verschillend bestandsformaat gebruiken voor de output.

mogrify -format png -sample 15%x15% *.jpg

Effecten toevoegen

Bij de vele opties bied convert ook nog allerlei effecten om toe te passen op de afbeeldingen, zoals: charcoal, colorize, implode, solarize etc. Voorbeeld met charcoal:

convert -charcoal 1 me.png coal.png

Spelen met pdf

Stel je voor dat je een aantal afbeeldingen wil versturen, nu kun je deze afbeeldingen stuk voor stuk toevoegen in je email-client, maar echt practisch voor zowel de verzender als de ontvanger is dit niet. Met convert kun je simpelweg al de afbeeldingen samen in 1 pdf bestand opnemen:

convert *jpg allinone.pdf

Nog leuker: andersom, het halen van alle afbeeldingen uit een pdf bestand werkt ook:

convert allinone.pdf image_%04d.tiff

Het %-teken in de bestandsnaam zal vervangen worden door een getal, 4d wil zeggen dat het cijfer zal bestaan uit 4 tekens, dus 0001, 0002 etc. Als je deze %4d weglaat, zal convert een getal toevoegen achter de extensie, dus bijv. bestand.png.1, wat behoorlijk onpraktisch is.

Tekst toevoegen

Je kunt met convert ook tekst toevoegen aan, of beter gezegd binnen een afbeelding.

convert -font helvetica -fill yellow -pointsize 25 \ 
-draw 'text 100,250 "tekst afbeelding"' \
image.png text.png

Dit commando specificeert het lettertype helvetica, de kleur geel, font-grootte 25, en de kolom,rij waar de tekst moet beginnen. Je kunt natuurlijk ook meer tekst op verschillende locaties toevoegen.

convert -font helvetica -fill yellow -pointsize 36 \ 
-draw 'text 100,250 "tekst afbeelding"' \
image.png text.png

Overigens: als je maar 1 woord hebt, hoef je in principe geen dubbele quotes te gebruiken.

Als het lettertype zich niet in een standaard directory bevind (handig bij websites bijvoorbeeld) kun je volledige pad + fontnaam gebruiken.

Frames & Borders

Frames en randen kun je ook eenvoudig toevoegen aan een afbeelding, om bijvoorbeeld een een blauwe rand toe te voegen aan de afbeelding:

convert -bordercolor blue -border 5x5 pic001.png border001.png

In de parameter voor de dikte (5x5), staat het eerste getal voor horizontaal, de tweede voor verticaal. Je kunt een frame/border niet groter maken dan de afbeelding, en een kleur specificeren is verplicht.

Ook heel aardig zijn de schaduw-effecten met raised:

convert -raise 5x5 image.png raised.png

en lowered (in plaats van -raise gebruik je dan _raise) borders. 5x5 staan voor de dimensies.

Meer complexe borders, kun je maken met de parameters: -mattecollor en -frame in plaats van -bordercolor en -border.

Conclusie

Voor een command-line tool heeft ImageMagick dus ongelofelijk veel grafische mogelijkheden. Al de bewerkingen die hier genoemd zijn kun je bovendien ook nog eens gebruiken vanuit allerlei script-talen en programmeertalen. Zo kun je bijvoorbeeld heel handig deze utilities gebruiken op een webserver via php of perl.

Naast de command-line utilities is er ook nog een grafische utility meegeleverd, die je start met het commando:

display

© http://linuxlala.net/thoughts

Last Updated on Friday, 24 July 2009 17:19