import java.awt.image.BufferedImage; import javax.imageio.ImageIO; import java.io.File; import java.io.FileOutputStream; import java.io.PrintWriter; public class ImgConverter { public static void convert(String filename, String fileout) { BufferedImage bimg; try { bimg = ImageIO.read(new File(filename)); } catch (Exception e) { System.err.println("Error opening file " + filename + ": " + e); return; } char[][] imgdata = new char[bimg.getHeight()][bimg.getWidth()]; for (int y = 0; y < bimg.getHeight(); y++) { for (int x = 0; x < bimg.getWidth(); x++) { int pix = bimg.getRGB(x,y); int val = (pix & 0xFF) + ((pix >> 8) & 0xFF) + ((pix >> 16) & 0xFF); val /= 3; val >>= 6; char pchar = '.'; switch (val) { case 0: pchar = 'x'; break; case 3: pchar = ' '; } imgdata[y][x] = pchar; } } try { FileOutputStream fout = null; PrintWriter out = null; if (fileout != null) { fout = new FileOutputStream(fileout); out = new PrintWriter(fout); } else { out = new PrintWriter(System.out); } for (int y = 0; y < imgdata.length; y++) { for (int x = 0; x < imgdata[y].length; x++) { out.print(imgdata[y][x]); } out.println(); } out.flush(); if (fileout != null) fout.close(); } catch (Exception e) { System.err.println("Error writing to output file "+fileout+": "+e); return; } } }