Exemple ASCII Art Java

Exemple ASCII Art Java

ascii-art-java

Un exemple amusant de Java pour créer un graphiqueASCII art. Le concept est simple, obtenez la couleur RVB de l’image en «mode entier», puis remplacez l’entier de la couleur par du texte ascii.

P.S This example is credited for this post

ASCIIArtService.java

package com.example.service;

import java.awt.*;
import java.awt.image.BufferedImage;
import java.io.IOException;

public class ASCIIArtService {

    public static void main(String[] args) throws IOException {

        int width = 100;
        int height = 30;

        //BufferedImage image = ImageIO.read(new File("/Users/example/Desktop/logo.jpg"));
        BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
        Graphics g = image.getGraphics();
        g.setFont(new Font("SansSerif", Font.BOLD, 24));

        Graphics2D graphics = (Graphics2D) g;
        graphics.setRenderingHint(RenderingHints.KEY_TEXT_ANTIALIASING,
                RenderingHints.VALUE_TEXT_ANTIALIAS_ON);
        graphics.drawString("JAVA", 10, 20);

        //save this image
        //ImageIO.write(image, "png", new File("/users/example/ascii-art.png"));

        for (int y = 0; y < height; y++) {
            StringBuilder sb = new StringBuilder();
            for (int x = 0; x < width; x++) {

                sb.append(image.getRGB(x, y) == -16777216 ? " " : "$");

            }

            if (sb.toString().trim().isEmpty()) {
                continue;
            }

            System.out.println(sb);
        }

    }

}

Sortie

                  $$$        $$$$$      $$$$         $$$$     $$$$$
                  $$$       $$$$$$$     $$$$         $$$$    $$$$$$$
                  $$$       $$$$$$$     $$$$$       $$$$$    $$$$$$$
                  $$$       $$$$$$$      $$$$       $$$$     $$$$$$$
                  $$$      $$$$ $$$$     $$$$$     $$$$$    $$$$ $$$$
                  $$$      $$$$ $$$$      $$$$     $$$$     $$$$ $$$$
                  $$$     $$$$$ $$$$$     $$$$     $$$$    $$$$$ $$$$$
                  $$$     $$$$   $$$$     $$$$$   $$$$$    $$$$   $$$$
                  $$$     $$$$   $$$$      $$$$   $$$$     $$$$   $$$$
                  $$$    $$$$$   $$$$$     $$$$$ $$$$$    $$$$$   $$$$$
                  $$$    $$$$$$$$$$$$$      $$$$ $$$$     $$$$$$$$$$$$$
          $$$$   $$$$    $$$$$$$$$$$$$      $$$$ $$$$     $$$$$$$$$$$$$
          $$$$   $$$$   $$$$$$$$$$$$$$$      $$$$$$$     $$$$$$$$$$$$$$$
          $$$$$ $$$$$   $$$$       $$$$      $$$$$$$     $$$$       $$$$
          $$$$$$$$$$$  $$$$$       $$$$$     $$$$$$$    $$$$$       $$$$$
           $$$$$$$$$   $$$$         $$$$      $$$$$     $$$$         $$$$
            $$$$$$$    $$$$         $$$$      $$$$$     $$$$         $$$$

What is -1677216?
Le code couleur, dans ce cas toutes les couleurs "-1677216" sont remplacées par des "" vides. C'est l'idée de générer le graphique d'art ASCII. Essayez de charger une image et imprimez la couleur RVB, vous remarquerez que la couleur différente a un code différent.