Arbeit mit Bildern in Kotlin: Bibliotheken und Werkzeuge

Online Python-Trainer für Anfänger

Lernen Sie Python einfach ohne theoretische Überlastung. Lösen Sie praktische Aufgaben mit automatischer Überprüfung und schreiben Sie Code direkt im Browser.

Kurs starten

Arbeit mit Bildern in Kotlin: Überblick über Bibliotheken und praktische Beispiele



Kotlin, als moderne Programmiersprache, die vollständig mit Java kompatibel ist, bietet Entwicklern Zugriff auf das gesamte Ökosystem von Bibliotheken für die Arbeit mit Bildern. In diesem Artikel betrachten wir die wichtigsten Werkzeuge, die in Kotlin zum Laden, Verarbeiten, Umwandeln und Speichern von Bildern zur Verfügung stehen. Sie erfahren, wie Sie die Standardfunktionen von Java (AWT, Swing) und spezialisierte Bibliotheken zur Lösung typischer Aufgaben einsetzen.



Standardwerkzeuge Java AWT und Swing



Die grundlegende Funktionalität für die Arbeit mit Bildern in Kotlin (wie auch in Java) bieten die Pakete java.awt und javax.imageio. Die wichtigsten Klassen:



  • java.awt.image.BufferedImage — stellt ein Rasterbild mit Pixelzugriff dar.
  • java.awt.Graphics2D — bietet Methoden zum Zeichnen (Linien, Formen, Text) auf dem Bild.
  • javax.imageio.ImageIO — statische Methoden zum Lesen und Schreiben von Bildern in verschiedenen Formaten (PNG, JPEG, BMP, GIF).
  • java.awt.Color — Arbeit mit Farben.
  • java.awt.image.RescaleOp, java.awt.image.ConvolveOp — Filter zum Ändern von Helligkeit, Kontrast, Unschärfe.


Beispiel 1: Bild laden, Größe ändern und speichern



import java.awt.image.BufferedImageimport java.awt.Graphics2Dimport java.awt.RenderingHintsimport java.io.Fileimport javax.imageio.ImageIO

fun resizeImage(inputPath: String, outputPath: String, targetWidth: Int, targetHeight: Int) { // Laden des Originalbildes val originalImage: BufferedImage = ImageIO.read(File(inputPath))

// Erstellen eines neuen Bildes mit der gewünschten Größe val resizedImage = BufferedImage(targetWidth, targetHeight, BufferedImage.TYPE_INT_RGB) val graphics: Graphics2D = resizedImage.createGraphics()

// Einstellen der Resampling-Qualität graphics.setRenderingHint(RenderingHints.KEY_INTERPOLATION, RenderingHints.VALUE_INTERPOLATION_BILINEAR) graphics.setRenderingHint(RenderingHints.KEY_RENDERING, RenderingHints.VALUE_RENDER_QUALITY) graphics.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON)

// Zeichnen des skalierten Bildes graphics.drawImage(originalImage, 0, 0, targetWidth, targetHeight, null) graphics.dispose()

// Speichern des Ergebnisses ImageIO.write(resizedImage, "jpg", File(outputPath)) println("Bild gespeichert: $outputPath")}

// Beispielaufruffun main() { resizeImage("input.jpg", "output_resized.jpg", 800, 600)}


Bibliothek Thumbnailator



Thumbnailator ist eine beliebte Bibliothek für Java/Kotlin, die das Erstellen von Miniaturansichten und das Ändern der Bildgröße erheblich vereinfacht. Ihr Hauptvorteil ist die einfache fluent API.



Einbindung (Gradle):

implementation("net.coobird:thumbnailator:0.4.20")


Beispiel 2: Erstellen einer Miniaturansicht mit Thumbnailator



import net.coobird.thumbnailator.Thumbnailsimport java.io.File

fun createThumbnail(inputPath: String, outputPath: String, size: Int) { Thumbnails.of(File(inputPath)) .size(size, size) // quadratische Miniaturansicht .keepAspectRatio(true) // Seitenverhältnis beibehalten .outputFormat("png") .toFile(File(outputPath)) println("Miniaturansicht erstellt: $outputPath")}

fun main() { createThumbnail("photo.jpg", "thumb.png", 150)}


Die Bibliothek unterstützt auch Zuschneiden, Drehen, Hinzufügen von Wasserzeichen und die Arbeit mit Streams.



Bibliothek OpenCV für Kotlin



Für anspruchsvolle Computerbildverarbeitung (Gesichtserkennung, Filterung, Konturanalyse) wird

Empfehlungen