Art ASCII à Java

Un mémorandum que j'ai joué avec l'envie de décorer la bûche. Faites les caractères ASCII art. Tout peut être réalisé avec la bibliothèque Java standard. [Référence] https://www.baeldung.com/ascii-art-in-java

1. Créer une classe

ASCIIService.java


import java.awt.Font;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.RenderingHints;
import java.awt.image.BufferedImage;
import java.io.IOException;
 
public class ASCIIService {
 
    /**
     *Méthode pour faire de l'art ASCII.
     * @param str Caractères que vous souhaitez transformer en art ASCII
     * @renvoie le caractère StringBuilder devenu art ASCII
     */
    public static StringBuilder createAscii(String str) {
 
        //La taille du graphique à générer
        int height =30;
        int width = 200;
        //Position de départ du dessin
        int startX = 2;
        int stratY = 20;
        //Définir la police
        Font font = new Font("Arial", Font.BOLD, 14);
        StringBuilder sysout = new StringBuilder("\n");
         
        BufferedImage bufferedImage = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
        Graphics graphics = bufferedImage.getGraphics();
         
        //Convertir le texte en graphique
        Graphics2D g = (Graphics2D) graphics;
        g.setRenderingHint(RenderingHints.KEY_TEXT_ANTIALIASING, RenderingHints.VALUE_TEXT_ANTIALIAS_ON);
        g.setFont(font);
        g.drawString(str, startX, stratY);
         
        //Transcrit en art ASCII basé sur le graphique
        for (int y = 0; y < height; y++) {
            StringBuilder stringBuilder = new StringBuilder();
          
            for (int x = 0; x < width; x++) {
                stringBuilder.append(bufferedImage.getRGB(x, y) == -16777216 ? " " : "@");
            }
            if (stringBuilder.toString().trim().isEmpty()) {
                continue;
            }
            sysout.append("\n" + stringBuilder);
        }
        sysout.append("\n");
        return sysout;
    }
 
    public static void main(String[] args) {
        //Courir
        System.out.println(createAscii("PROCESS START!"));
    }
}

2. Exécutez

Si vous utilisiez eclipse Faites un clic droit sur classe> Exécuter> Application Java image.png

Vous pouvez également exécuter des commandes si le chemin est correct

Comment passer le chemin https://www.javadrive.jp/start/install/index4.html Comment exécuter des commandes https://pentan.info/java/command_line.html image.png

Remarques. Je veux le faire plus facilement

Il semble que vous puissiez le créer en une seule ligne en utilisant la bibliothèque https://qiita.com/hoge390281/items/808b9e9afddf5db41f20 image.png Facile! mignonne!

Recommended Posts

Art ASCII à Java
Changements dans Java 11
Janken à Java
Taux circonférentiel à Java
FizzBuzz en Java
Communication TCP (communication socket) en Java (ASCII, Binaire)
Lire JSON en Java
Faites un blackjack avec Java
Programmation par contraintes en Java
Mettez java8 dans centos7
NVL-ish guy en Java
Joindre des tableaux en Java
"Hello World" en Java
Interface appelable en Java
Fizzbuzz avec art ASCII.
Commentaires dans la source Java
Fonctions Azure en Java
Formater XML en Java
Simple htmlspecialchars en Java
Hello World en Java
Utiliser OpenCV avec Java
Mémorandum WebApi avec Java
Détermination de type en Java
Exécuter des commandes en Java (ping)
Divers threads en java
Implémentation du tri de tas (en java)
API Zabbix en Java
Comparer des listes en Java
POST JSON en Java
Exprimer l'échec en Java
Créer JSON en Java
Manipulation de la date dans Java 8
Nouveautés de Java 8
Utiliser PreparedStatement en Java
Nouveautés de Java 9,10,11
Exécution parallèle en Java
Essayez d'utiliser RocksDB avec Java
Évitez l'erreur que Yuma a donnée en Java
Obtenir des informations EXIF en Java
Modifier ini en Java: ini4j
L'histoire de Java dans ce monde
Essayez d'appeler JavaScript en Java
Essayez le type fonctionnel en Java! ①
J'ai fait une roulette à Java.
Implémentation de l'authentification en deux étapes en Java
Refactoring: faire du Blackjack en Java
Analyse de sujets (LDA) en Java
Prétraitement NEologd en Java neologdn-java
Changer le codage Java dans Windows
API Java Stream en 5 minutes
Problème de ne pas trouver javax.annotation.Généré en Java 11
Lire l'entrée standard en Java
Implémenter l'authentification de base en Java
Rechercher un sous-ensemble en Java
[Java] Obtenir KClass en Java [Kotlin]
Créer des fonctions Azure en Java
Importer des données Excel avec Java