您的位置:首页 > 编程语言 > Java开发

使用java将图片转化成字符图形

2012-05-23 16:21 363 查看
原理是对每个像素计算灰度,将灰度映射到字符数组上,很简单,只有几行代码,效果还是不错的

private final static char[] asc = { ' ', '`', '.', '^', ',', ':', '~', '"', '<', '!', 'c', 't', '+', '{', 'i', '7',
'?', 'u', '3', '0', 'p', 'w', '4', 'A', '8', 'D', 'X', '%', '#', 'H', 'W', 'M' };

public static StringBuilder imageToAscii(BufferedImage image) throws IOException {
StringBuilder sb = new StringBuilder();
int width = image.getWidth();
int height = image.getHeight();
for (int i = 0; i < height; i++) {
for (int j = 0; j < width; j++) {
int rgb = image.getRGB(j, i);
int R = (rgb & 0xff0000) >> 16;
int G = (rgb & 0x00ff00) >> 8;
int B = rgb & 0x0000ff;
int gray = (R * 30 + G * 59 + B * 11 + 50) / 100;
int index = 31 * gray / 255;
sb.append(asc[index]);
}
sb.append("\n");
}
return sb;
}


下面是原图和效果图


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: