使用Java代码将一张图片生成为字符画
测试的图片:
输出的结果:
代码:
1 package test; 2 3 import java.awt.image.BufferedImage; 4 import java.io.File; 5 import java.io.IOException; 6 7 import javax.imageio.ImageIO; 8 9 /** 10 * 将一张图片生成为字符画 11 * 12 * @author 11475 13 * 14 */ 15 public class DemoCase { 16 /** 17 * @param path 图片路径 18 */ 19 public static void createAsciiPic(final String path) { 20 final String base = "@#&$%*o!;.";// 字符串由复杂到简单 21 try { 22 final BufferedImage image = ImageIO.read(new File(path)); 23 for (int y = 0; y < image.getHeight(); y += 2) { 24 for (int x = 0; x < image.getWidth(); x++) { 25 final int pixel = image.getRGB(x, y); 26 final int r = (pixel & 0xff0000) >> 16, g = (pixel & 0xff00) >> 8, b = pixel & 0xff; 27 final float gray = 0.299f * r + 0.578f * g + 0.114f * b; 28 final int index = Math.round(gray * (base.length() + 1) / 255); 29 System.out.print(index >= base.length() ? " " : String.valueOf(base.charAt(index))); 30 } 31 System.out.println(); 32 } 33 } catch (final IOException e) { 34 e.printStackTrace(); 35 } 36 } 37 38 /** 39 * 在 createAsciiPic(final String path)添加图片的路径 40 */ 41 public static void main(final String[] args) { 42 DemoCase.createAsciiPic("C:\\Users\\11475\\Desktop\\resizeApi (2).png"); 43 } 44 }