Aprende Java Aprende Php Aprende C++ Aprende HTML 5 Aprende JavaScript Aprende JSON Aprende MySQL Aprende SQLServer Aprende Visual Basic 6 Aprende PostgreSQL Aprende SQLite Aprende Redis Aprende Kotlin Aprende XML Aprende Linux VSC Aprende Wordpress Aprende Laravel Aprende VueJS Aprende JQuery Aprende Bootstrap Aprende Netbeans Aprende Android
Sigueme en Facebook Sigueme en Twitter Sigueme en Instagram Sigueme en Youtube Sigueme en TikTok Sigueme en Whatsapp
Home / Java / Generador de Texto ASCII en Java

Generador de Texto ASCII en Java

Por jc mouse martes, mayo 1, 2018

ASCII acrónimo inglés de American Standard Code for Information Interchange (Código Estándar Estadounidense para el Intercambio de Información), es un código de caracteres basado en el alfabeto latino, tal como se usa en inglés moderno. (Santa Wikipedia).

En esta oportunidad les dejo un código java para convertir «texto» en código Ascii.

  • Desarrollado en Netbeans 22
  • Java 8
  • No necesita librerías externas

Lo que hace, es tomar el texto pasado como parámetro, calcular sus dimensiones y pintarlo en memoria (BufferedImage) para luego pixel a pixel ir reemplazando por caracteres ascii.

Clase Ascii:

import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics2D;
import java.awt.font.TextLayout;
import java.awt.geom.Rectangle2D;
import java.awt.image.BufferedImage;
/**
 * @see https://www.jc-mouse.net/
 * @author mouse
 */
public class Ascii {

    private String blanco = "#";
    private String negro = " ";
    private final Font font = new Font("Arial", Font.BOLD, 24);

    public StringBuilder crear(String text) {
        StringBuilder stringBuilder = new StringBuilder();
        BufferedImage image = new BufferedImage(1, 1, BufferedImage.TYPE_INT_ARGB);
        Graphics2D g2 = image.createGraphics();
        TextLayout layout = new TextLayout(text, font, g2.getFontRenderContext());
        layout.draw(g2, 0, 0);
        Rectangle2D bounds = layout.getBounds();
        int ancho = (int) bounds.getWidth() + 4;
        int alto = (int) bounds.getHeight() + 2;
        image = new BufferedImage(ancho, alto, BufferedImage.TYPE_INT_ARGB);
        g2 = image.createGraphics();
        g2.setColor(new Color(255, 255, 255));
        g2.fill(new Rectangle2D.Double(0, 0, ancho, alto));
        g2.setColor(new Color(0, 0, 0));
        g2.setFont(font);
        g2.drawString(text, 2, alto - 1);

        for (int y = 0; y < alto; y++) {
            for (int x = 0; x < ancho; x++) {
                stringBuilder.append(image.getRGB(x, y) == new Color(255, 255, 255).getRGB() ? blanco : negro);
            }
            stringBuilder.append("\n");
        }
        return stringBuilder;
    }

    public String getBlanco() {
        return blanco;
    }

    public void setBlanco(String blanco) {
        this.blanco = blanco;
    }

    public String getNegro() {
        return negro;
    }

    public void setNegro(String negro) {
        this.negro = negro;
    }

}

espero les guste 🙂

ascii codigo fuente

Descarga proyecto AQUI

enjoy!!!

Tags

Artículos similares

Control de Paginación (Pagination) en tus Apps FX

El control de paginación de JavaFX (Pagination) se usa para navegar a través de varias paginas de contenido divididas en[...]

Script PHP – Mouse responde

«Mouse Responde…» simula ser un alma en pena que responde cualquier pregunta que le hagan, al estilo del juego de[...]

JavaScript: Script y Web para generar banderas ondeando

Online Flag Waver es una páginas web con la que podemos generar banderas ondeando con la textura que elijamos ya sea des[...]

Dimask: La mascara de la Belleza (Descargar)

La Belleza está en la Simetría ¿Qué es lo que nos hace considerar un rostro bello? ¿Está influenciado nuestro criterio p[...]

Crear imagen dinamicamente y agregar a un objeto swing

Si bien se puede hacer uso de archivos de imagen (jpg, png, bmp, etc) en las aplicaciones java, también este te permite[...]

Personalizar nodos de un JTree con HTML

Una clase JTree permite mostrar datos de una forma jerárquica y en realidad este objeto no contiene sus datos; es decir,[...]