Essayez d'ajouter du texte à une image avec Scala en utilisant la bibliothèque standard de Java

Aperçu

Lorsque vous essayez d'ajouter du texte à une image avec Scala, je pense que le moyen le plus simple de l'implémenter est d'utiliser la bibliothèque standard de Java. Donc, fondamentalement, le contenu de l'implémentation est presque le même que Java, mais je vais présenter l'exemple de code avec le site référencé.

référence

Il y en a quelques-uns, mais je vais énumérer les articles auxquels j'ai fait référence.

Exemple de code

Il s'agit d'un exemple de code qui ajoute des caractères sur le côté de l'image d'origine et la génère. En disant Scala, je pense que c'est presque la même chose que Java.

ImageWritingWordSample.scala


import java.awt.{Color, Font, RenderingHints}
import java.awt.image.BufferedImage
import java.io.{File, FileOutputStream}

import javax.imageio.{IIOImage, ImageIO, ImageWriteParam}

object ImageWritingWordSample extends App {
  //Chargement de l'image originale
  val originalImage = ImageIO.read(new File(s"resources/200x50.png "))

  //Incorporer l'image d'origine dans la nouvelle image
  val newImage = new BufferedImage(320, 50, originalImage.getType)
  val graphics = newImage.createGraphics()
  graphics.drawImage(originalImage, 0, 0, null)

  //Couleur d'arrière-plan où vous écrivez des lettres
  graphics.setColor(Color.WHITE)
  graphics.fillRect(200, 0, 320, 50)

  //Paramètres de police
  graphics.setFont(new Font("Arial", Font.PLAIN, 12))
  //Couleur de la lettre
  graphics.setColor(Color.BLACK)
  //Anti crénelage
  graphics.setRenderingHint(RenderingHints.KEY_TEXT_ANTIALIASING, RenderingHints.VALUE_TEXT_ANTIALIAS_ON)
  //Ajouter des personnages
  graphics.drawString("Test de test", 210,20)
  graphics.drawString("Test de test", 210,40)

  //Sortie d'image
  val os = new FileOutputStream("resources/new_320x50.jpeg ")
  val ios = ImageIO.createImageOutputStream(os)
  val writer = ImageIO.getImageWritersByFormatName("jpeg").next
  val param = writer.getDefaultWriteParam
  param.setCompressionMode(ImageWriteParam.MODE_EXPLICIT)
  //Paramètres de qualité d'image
  param.setCompressionQuality(1.0f)
  writer.setOutput(ios)
  writer.write(null, new IIOImage(newImage, null, null), param)
  writer.dispose()
}

Résultat d'exécution

** 【L'image d'origine】 ** 200x50.png ** [Image après l'ajout de caractères] ** new_320x50.jpeg

Recommended Posts

Essayez d'ajouter du texte à une image avec Scala en utilisant la bibliothèque standard de Java
Essayez d'implémenter le tamis Eratostenes en utilisant la bibliothèque standard de Java
Essayez le hooking global en Java à l'aide de la bibliothèque JNativeHook
Essayez d'utiliser l'API Stream en Java
[Java] Utiliser la technologie cryptographique avec les bibliothèques standard
Essayez d'utiliser l'analyse syntaxique de l'API COTOHA en Java
[Rails] Comment afficher les images dans la vue
Essayez d'utiliser RocksDB avec Java
[Java] Essayez de modifier les éléments de la chaîne Json à l'aide de la bibliothèque
Essayez une expression If en Java
Bienvenue dans le marais des bibliothèques Java! !!
[Java] Essayez de mettre en œuvre à l'aide de génériques
Essayez d'implémenter Yuma en Java
[Java] Essayez de résoudre le problème de Fizz Buzz en utilisant un traitement récursif
[Java] L'ajout d'un élément à la collection provoque une erreur de compilation
Comment résoudre l'erreur inconnue apparue lors de l'utilisation de slf4j en Java
Comment obtenir la longueur d'un fichier audio avec Java
Essayez de résoudre Project Euler en Java
Référence Java à comprendre dans la figure
Essayez d'implémenter l'ajout n-aire en Java
Mapper sans utiliser de tableau en java
Essayez d'utiliser l'API au format JSON en Java
Essayez d'appeler le service CORBA sur Java 11+
Comment définir l'image pour dessiner à gauche / à droite du bouton à l'aide de la police d'icône (Iconics)
Comment obtenir la date avec Java
[Java] Colorez la sortie standard vers le terminal
Essayez d'utiliser la télécommande Wii en Java
Rails6: Extraire l'image dans le texte d'action
Comment renvoyer plusieurs valeurs dans une méthode Java (Generics, Record, Triple, Tuple, en utilisant des bibliothèques standard et des bibliothèques externes)
NLP4J [004] Essayez l'analyse de texte en utilisant le traitement du langage naturel et le traitement statistique de l'analyse syntaxique en Java
NLP4J [003] Essayez l'analyse de texte en utilisant le traitement du langage naturel et le traitement statistique des pièces en Java
ChatWork4j pour l'utilisation de l'API ChatWork en Java
Je souhaite envoyer un e-mail en Java.
3 façons d'importer des bibliothèques dans Android Studio
Essayez de créer un babillard en Java
Deuxième décoction: essayez une expression If en Java
Essayez d'utiliser Sourcetrail (version win) avec du code Java
Essayez d'utiliser l'API Cloud Vision de GCP en Java
Essayez d'utiliser Sourcetrail (version macOS) avec du code Java
Essayez une recherche similaire de recherche d'images à l'aide du SDK Java [Recherche]
Essayez d'accéder à l'ensemble de données depuis Java en utilisant JZOS
Bibliothèque "OSHI" pour acquérir des informations système avec Java
Afficher "Hello World" dans le navigateur à l'aide de Java
Afficher "Hello World" dans le navigateur à l'aide de Java
Comment résoudre les problèmes d'expression en Java
Poussez l'image vers le hub docker à l'aide de Jib
[Java] Essayez de résoudre le problème de Fizz Buzz
Code utilisé lorsque vous souhaitez traiter Json avec uniquement des bibliothèques standard en Java (version améliorée) gson inutile
[Développement Android] Obtenez des images du serveur avec Java et définissez-les dans ImageView! !!
Que faire si vous ne pouvez pas obtenir le texte d'un élément dans Selenium
Comment obtenir le nom de classe de l'argument de LoggerFactory.getLogger lors de l'utilisation de SLF4J en Java
Code à utiliser lorsque vous souhaitez traiter Json en Java avec uniquement des bibliothèques standard
Comment rendre une image partiellement transparente avec le traitement
Sortie de la valeur maximale d'un tableau à l'aide de la sortie standard Java
[Java] Comment omettre le constructeur privé dans Lombok
Comment écrire Scala du point de vue de Java
J'ai essayé de créer une compétence d'écho d'Amazon qui raconte des informations récupérées en Java à l'aide d'Alexa Skills Kit (ASK)
Essayez la recherche similaire de Recherche d'images à l'aide du SDK Java [Inscription]
Comment utiliser la bibliothèque Z3 dans Scala avec Eclipse