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.
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 🙂
Descarga proyecto AQUI
enjoy!!!
En este tutorial crearemos un componente swing para java que podremos usar en cualquiera de nuestros proyectos, el compo[...]
Una de las novedades de Java 9 y 10 aunque por el momento en modo de prueba (jdk.incubator.http) es el Cliente HTTP el c[...]
El modelo Tweetbotornot es un algoritmo de aprendizaje automático que se entrenó en miles de cuentas reales de bot y no[...]
OS.js a pesar de lo que sugiere su nombre, no es en si un Sistema Operativo, es más, en su web oficial no se nombra por[...]
Netbeans tiene soporte para trabajar con varias herramientas de control de versiones, GIT es una de ellas, esta herramie[...]
En este tutorial Android Bolivia 🙂 construiremos una sencilla aplicación para realizar llamadas por teléfono, aprenderem[...]