From a974421396255f733621e9ad8d7e6869f6f5d4b9 Mon Sep 17 00:00:00 2001 From: Tu Nombre <zs201021683@estudiantes.uv.mx> Date: Wed, 12 Feb 2025 08:15:55 -0600 Subject: [PATCH] prueba --- AsciiArtGenerator.java | 56 ++++++++++++++++++++++++++++++++++++++++++ README.md | 1 + 2 files changed, 57 insertions(+) create mode 100644 AsciiArtGenerator.java diff --git a/AsciiArtGenerator.java b/AsciiArtGenerator.java new file mode 100644 index 0000000..faf719a --- /dev/null +++ b/AsciiArtGenerator.java @@ -0,0 +1,56 @@ +import javax.imageio.ImageIO; +import java.awt.image.BufferedImage; +import java.io.File; +import java.io.IOException; + +public class AsciiArtGenerator { + + // Caracteres ordenados de menor a mayor intensidad + private static final String ASCII_CHARS = "@%#*+=-:. "; + + public static void main(String[] args) { + if (args.length < 1) { + System.out.println("Uso: java AsciiArtGenerator <ruta de la imagen>"); + return; + } + + String imagePath = args[0]; + try { + BufferedImage image = ImageIO.read(new File(imagePath)); + String asciiArt = convertToAscii(image); + System.out.println(asciiArt); + } catch (IOException e) { + System.err.println("Error al cargar la imagen: " + e.getMessage()); + } + } + + private static String convertToAscii(BufferedImage image) { + StringBuilder sb = new StringBuilder(); + int width = image.getWidth(); + int height = image.getHeight(); + + // Redimensionar la imagen para que quepa en la consola + int newWidth = 100; + int newHeight = (int) (height * ((double) newWidth / width) / 2); // Dividir por 2 para ajustar la proporción + + BufferedImage resizedImage = new BufferedImage(newWidth, newHeight, BufferedImage.TYPE_INT_RGB); + resizedImage.getGraphics().drawImage(image, 0, 0, newWidth, newHeight, null); + + for (int y = 0; y < newHeight; y++) { + for (int x = 0; x < newWidth; x++) { + int pixel = resizedImage.getRGB(x, y); + int r = (pixel >> 16) & 0xff; + int g = (pixel >> 8) & 0xff; + int b = pixel & 0xff; + int gray = (r + g + b) / 3; // Convertir a escala de grises + + // Mapear el valor de gris a un carácter ASCII + int index = gray * (ASCII_CHARS.length() - 1) / 255; + sb.append(ASCII_CHARS.charAt(index)); + } + sb.append("\n"); + } + + return sb.toString(); + } +} \ No newline at end of file diff --git a/README.md b/README.md index 6440bfe..788af31 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,4 @@ # asciinuevo +Aldo Velasco Hdz prueba \ No newline at end of file