ImageMagick

Relevans: Linux, BSD, MacOS og Windows

Den anden dag modtog jeg ca. 250 billeder fordelt på 4 CDer. Jeg skulle lægge billederne op på en hjemmeside, der skulle vise dem i et billedgalleri.  Samtlige billeder var taget med en opløsning på 5184X3456, hvilket svarer til 12 MPixels. Det er en høj men normal opløsning for nyere kameraer.

De høje opløsninger gør det svært at håndtere store mængder af billeder. Computeren kommer på overarbejde og normale båndbredder er direkte utilstrækkelige, når man skal arbejde med så store mængder data. Opløsningen på hvert billede svarer da også til, hvad der kan vises i fuld opløsning på 9 sammensatte HD-skærme. Det er alligevel de færreste, der har glæde af det, når de browser på internettet.

Min opgave var således at formindske størrelsen på samtlige billeder til en passende størrelse. Det kan gøres med en række tilgængelige programmer som f.eks. Gimp, Photoshop, Irfanwiev o.m.fl. Nogle af programmerne er direkte uegnede, da de kræver, man skal tilpasse hvert billede for sig. Det jeg havde brug for, var et program, der kunne formindske samtlige billeder "i et hug", uden jeg skulle gøre yderligere.

ImageMagick var løsningen som så ofte før. Programmet findes til stort set alle platforme og det anvendes i vid udstrækning på webserver, der herved understøtter billedmanipulation.

ImageMagick er ikke kun et program, det er en samling af små programmer, som hver især kan udføre konkrete funktioner - en af disse er at forandre størrelsen på flere billeder og det var så den funktion, jeg havde brug for en løsning til. Derudover rummer ImagaMagick hundredevis af andre muligheder for billedmanipulation, som helt matcher de bedste billedprogrammer på markedet - og det hele er frit tilgængeligt for alle.

Kommandoen convert kan bruges på utallige måder og med utallige effekter.

#> convert -resize 25% -format small/jpg *

Ovenstående kommando krymper (siderne i) samtlige billeder i den aktuelle mappe til 25% af den oprindelige størrelse.  Man kan ogs angive en valgfri absolut størrelse på f.eks. 800X600 i stedet for de 25%, hvis det er det, man ønsker. Kommandoen placerer filerne i mappen small med filtypenendelsen .jpg. 
Det er stjernen i udtrykket, der gør, at samtlige filer konverteres. Man kan naturligvis erstatte stjernen med et præcist filnavn, eller f.eks. image01* for alle filer, der begynder med denne sekvens - altså helt som man ellers vælger filer i kommandolinjen.


Fig: 1 - Billedet hedder grønspætte2.jpg. Dimensionerne er:  518X389

Lad os lege lidt med ovenstående fotografi. Der er tale om et billede af en relativ sjælden dansk fugl - en grønspætte.

Vi er kun interesseret i fuglen, så lad os klippe noget af omgivelserne fra.

#> convert groenspaette2.jpg -crop '100x200+180+80' crop.png

Resultatet er følgende:


crop.jpg

Vi klippede et omåder der er 100px bredt, 200px højt. Det øverste venstre hjørne blev klippet 180px til højre for og 80px under det oprindelige billedes kanter.

Lad os skærpe det lidt: #> convert crop.png -sharpen 0x6 cropsharp.png


cropsharp.png

Lad os til sidst lysne billedet: #> convert cropsharp.png -modulate 115% cropsharpbrigthen.png


cropsharpbrigthen.png

Man behøver ikke at gøre tingene trinvist, som i illustrationen. Det hele kunne være gjort i et trin således:

#> convert groenspaette2.jpg -crop '100x200+180+80' -sharpen 0x6 -modulate 115% cropsharpbrigthen2.png

Til sidst vil jeg lige vise dig endnu et nyttigt trick med convert.

#> convert cropsharpbrigthen.png -font Courier -pointsize 12 -fill Red -draw "text 190,150 'Grønspætte'" numedtext.png


numedttext.png

ImageMagick ER magisk! Besøg hjemmesiden, hvis du mangler programmet. Jeg vil vende tilbage senere med mere, om nogle af de mange muligheder det rummer.

kategori: