Kleine Helfer

Imgscalr - Bilder in Java einfach skalieren

10.08.2013
Von 
Diego Wyllie hat Wirtschaftsinformatik an der TU München studiert und verbringt als Softwareentwickler und Fachautor viel Zeit mit Schreiben – entweder Programmcode für Web- und Mobile-Anwendungen oder Fachartikel rund um Softwarethemen.
Bei Web-Anwendungen muss man Bilder häufig skalieren, weil sie in einer Größe angezeigt werden sollen, in der sie eigentlich nicht vorliegen.
Bilder skalieren ohne Verzerrung.
Bilder skalieren ohne Verzerrung.
Foto: Diego Wyllie

Wenn man diese Aufgabe dem Browser überlässt, sind meist weniger professionelle Ergebnisse die Folge, da Internet Explorer, Firefox, Safari und Co. beim Ändern der Bildgröße nicht darauf achten, die richtige Bildproportion beizubehalten. Will man beispielsweise ein 1024 mal 768 Pixel großes Bild in einem <image>-Tag mit einer Höhe von 450 Pixeln und einer Breite von 300 Pixeln anzeigen, wird das Bild völlig verzerrt dargestellt.

PHP-Programmierer haben es für eine korrekte Skalierung leichter als ihre Java-Kollegen. Es gibt zahlreiche Tools wie zum Beispiel "phpThumb" oder "TimThumb", die alle nötigen Funktionen bieten und schnell einzusetzen sind. Java bietet zwar ein natives Image-Processing-API sowie mächtige Tools wie das "Advanced Imaging API" an, doch will man Bilder nur skalieren, ist der Aufwand nicht gerechtfertigt. Java-Programmierer, die es schlicht und einfach mögen, können stattdessen auf die quelloffene Library "Imgscalr" zurückgreifen.

Das Tool basiert auf der nativen Java- 2D-API und bietet einen besonders schnellen und effizienten Weg, Bilder ohne Verzerrung zu skalieren. Dazu ist nur ein einziger Methodenaufruf erforderlich: "Scalr.resize()‚". Als Eingabeparameter werden die gewünschte Höhe und Breite in Pixeln übergeben. Die Methode sorgt automatisch dafür, dass die Bildproportion immer beibehalten wird, und liefert ein Image-Objekt zurück, das man beliebig weiterverarbeiten kann. Ein optionaler Eingabeparameter dient dazu, den anzuwendenden Algorithmus festzulegen.

CW-Fazit: Imgscalr bietet einen einfachen und effizienten Weg, Bilder in Java-basierenden Web-Anwendungen zu skalieren. Besonders nützlich ist das Tool, wenn man Miniaturansichten für Bildergalerien oder Artikelübersichten erstellen möchte. (ph)