Traitement des images en Kotlin : bibliothèques et outils

Formateur Python en ligne pour débutants

Apprenez Python facilement sans surcharge théorique. Résolvez des tâches pratiques avec vérification automatique et écrivez du code directement dans le navigateur.

Start Course

Traitement des images en Kotlin : aperçu des bibliothèques et exemples pratiques



Kotlin, en tant que langage de programmation moderne entièrement compatible avec Java, donne aux développeurs accès à tout l'écosystème de bibliothèques pour le traitement des images. Dans cet article, nous examinerons les principaux outils disponibles en Kotlin pour charger, traiter, transformer et enregistrer des images. Vous apprendrez à utiliser les fonctionnalités standard de Java (AWT, Swing) et les bibliothèques spécialisées pour résoudre des tâches typiques.



Outils standards Java AWT et Swing



Les fonctionnalités de base pour le traitement des images en Kotlin (comme en Java) sont fournies par les packages java.awt et javax.imageio. Les classes principales :



  • java.awt.image.BufferedImage — représente une image matricielle avec accès aux pixels.
  • java.awt.Graphics2D — fournit des méthodes pour dessiner (lignes, formes, texte) sur l'image.
  • javax.imageio.ImageIO — méthodes statiques pour lire et écrire des images dans différents formats (PNG, JPEG, BMP, GIF).
  • java.awt.Color — gestion des couleurs.
  • java.awt.image.RescaleOp, java.awt.image.ConvolveOp — filtres pour modifier la luminosité, le contraste, le flou.


Exemple 1 : Chargement, redimensionnement et enregistrement d'une image



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) { // Chargement de l'image source val originalImage: BufferedImage = ImageIO.read(File(inputPath))

// Création d'une nouvelle image de la taille spécifiée val resizedImage = BufferedImage(targetWidth, targetHeight, BufferedImage.TYPE_INT_RGB) val graphics: Graphics2D = resizedImage.createGraphics()

// Configuration de la qualité du rééchantillonnage 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)

// Dessin de l'image redimensionnée graphics.drawImage(originalImage, 0, 0, targetWidth, targetHeight, null) graphics.dispose()

// Enregistrement du résultat ImageIO.write(resizedImage, "jpg", File(outputPath)) println("Image enregistrée : $outputPath")}

// Exemple d'appelfun main() { resizeImage("input.jpg", "output_resized.jpg", 800, 600)}


Bibliothèque Thumbnailator



Thumbnailator est une bibliothèque populaire pour Java/Kotlin qui simplifie considérablement la création de miniatures et le redimensionnement d'images. Son principal avantage est son API fluide et simple.



Intégration (Gradle) :

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


Exemple 2 : Création d'une miniature avec Thumbnailator



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

fun createThumbnail(inputPath: String, outputPath: String, size: Int) { Thumbnails.of(File(inputPath)) .size(size, size) // miniature carrée .keepAspectRatio(true) // conserver les proportions .outputFormat("png") .toFile(File(outputPath)) println("Miniature créée : $outputPath")}

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


La bibliothèque prend également en charge le recadrage, la rotation, l'ajout de filigranes et le travail avec les flux.



Bibliothèque OpenCV pour Kotlin



Pour un traitement d'image informatique sérieux (reconnaissance faciale, filtrage, analyse de contours), on utilise

Recommendations