/** 此处设置灰度字符,此处只用十个字符,可以设置更多 */
private static char[] cs = new char[]{'.',',','*','+','=','&','$','@','#',' '};
public void jpegToText(){
try{
InputStream is = this.getClass().getClassLoader().getResourceAsStream("images/1.jpg");
//读取图片
BufferedImage bfedimage = ImageIO.read(is);
//图片转字符串后的数组
char[][] css = new char[bfedimage.getWidth()][bfedimage.getHeight()];
for(int x = 0;x<bfedimage.getWidth();x++){
for(int y = 0;y<bfedimage.getHeight();y++){
int rgb = bfedimage.getRGB(x, y);
Color c = new Color(rgb);
//得到灰度值
int cc = (c.getRed() + c.getGreen() + c.getBlue()) / 3;
css[x][y] = cs[(int) ((cc * 10 - 1) / 255)];
}
}
StringBuffer sb = new StringBuffer();
// 开始拼接内容
for (int y = 0; y < css[0].length; y++) {
for (int x = 0; x < css.length; x++) {
sb.append(css[x][y]);
}
sb.append("\r\n");
}
System.out.println(sb.toString());
is.close();
}catch(Exception e){
}
}