ABSTRACT: das netpbm packt zur bildverarbeitung auf der commandline wird vorgestellt AUDIENCE: users SYSTEM: any unix SECTION: usefull unix applications AUTHOR: mond COPYRIGHT: GNU Free Documentation Licence http://www.gnu.org/licenses/fdl.txt mit gimp gibt es inzwischen ein ausgezeichnetes freies bildbearbeitungsprogramm fuer unix. aber oft benoetigt man gar kein zeichenprogramm. oft will man nur automatisiert bilder von einem foramt in ein anderes umwandeln. gimp laesst sich zwar mittels scriptsprachen auch dazu verwenden. einfacher sind aber oft die sogenannten "netpbm" tools zur bearbeitung von bildern auf der kommandline. bildbearbeitung auf der kommandozeile? ja genau das: cat bla.gif | giftopnm | pnmrotate 70 | pnmtopng >bla.png obige zeile wuerde z.b. das file bla.gif mithilfe des programms giftopnm in das pnmformat umwandeln, dieses bild dann um 70 grad drehen (mithifle des pnmrotate befehls und das erbebniss mithilfe des pnmtopng program in ein png format umwandeln. das fertige bild pipen wir in das file bla.png angenommen wir haben in einem verzeichniss 1000 gif files von denen wir alle ein thumbnail mit einer groesse von 120x80 pixel im .png format machen wollen? fuer alle die bei den bash scripting kapitel aufgepasst haben kein problem: for k in *.gif ; do giftopnm $k | pnmscale -xsize 120 -ysize 80 |pnmtopng > echo ${k%.gif}.mini.png done das ergebniss ist fertig bevor windows user noch ihren photoshop gestartet haben. :) einwenig zur theorie von netbpm. nes gibt 3 interne fileformate: pbm (portable bitmap) ist ein format fuer schwarzweiss (1bit/pixl) bilder. pgm (portable grey map) fuer groustufen bilder. ppm (portable pixmap) fuer vollfarbenbilder. pnm steht fuer operationen die auf allen 3 obigen formaten angewendet werden koennen oder fuer umwandlungsprogramme die abhaengig vom typ des eingangsbildes eines der obigen ausgabeformate erzeugen. (ist das .gif file z.b. ein graustufen .gif so erzeugt giftopnm ein pgm format.) die programme sind aufwertskompatibel. programme die pgm lesen sollten auch pbm koennen. ppm programme auch pgm und pbm. zum umwandeln von/in jpeg format (.jpg) gibt es djpeg und cjpeg. z.b: giftopnm bla.gif | cjpeg -quality 40 > bla.jpg neben skalieren, rotiern, aendern der hellikeit und arithmetischen operationen auf bildern gibt es auch weitere von photobearbeitungsprogrammen bekannte effekte. z.b.: djpeg bla.jpg |ppmrelief |pnmtopng >bla.png oder djpeg bla.jpg |ppmquant 2 |pnmtopng >bla.png mehr zu all den vielen tools von netpbm in den entsprechenden man pages. EXERCISES: * schreibe ein kurzes script dass alle .jpg files in einem verzeichniss in kleine thumbnails z.b. 120x120 oder (verkleinert auf 1/8 der groesse) komprimiert. REFERENCES: man -k pnm man -k ppm man -k pgm man -k pbm http://www.sd.id.ethz.ch/dfs/installed_sw/netpbm.html