ASCIIアートJavaの例

ASCII Art Javaの例

ascii-art-java

ASCII artグラフィックを作成するための面白いJavaの例。 コンセプトはシンプルです。「整数モード」で画像のRGB色を取得し、後で色の整数を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);
        }

    }

}

出力

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

What is -1677216?
カラーコード。この場合、すべての色「-1677216」は空の「」に置き換えられます。 これは、ASCIIアートグラフィックを生成するためのアイデアです。 画像をロードして、RGBカラーを印刷してみてください。異なる色には異なるコードがあることに気付くでしょう。