import java.math.*; import javax.imageio.*; import java.awt.image.*; import java.awt.event.*; import java.awt.*; import java.security.spec.*; import java.security.*; import java.lang.management.*; import java.lang.ref.*; import java.lang.reflect.*; import java.net.*; import java.io.*; import javax.swing.table.*; import javax.swing.text.*; import javax.swing.event.*; import javax.swing.*; import java.util.concurrent.atomic.*; import java.util.concurrent.*; import java.util.regex.*; import java.util.List; import java.util.zip.*; import java.util.*; import java.awt.Font; import java.awt.Graphics; import java.awt.Graphics2D; import java.awt.RenderingHints; import java.awt.image.BufferedImage; import java.io.File; import java.io.IOException; import javax.imageio.ImageIO; //Please copy this and then fix some stuff then turn it into Javax. I don't know Java very well but you do. public class main { static String imageURL = "http://eyeocr.sourceforge.net/filestore/filestore.php?cmd=serve&file=blob_1000021&contentType=image/png"; public static void main(String[] args) throws IOException { BufferedImage image = null; try { URL url = new URL(imageURL); // Ask for image image = ImageIO.read(url); } catch (IOException e) { e.printStackTrace(); } Graphics g = image.getGraphics(); g.setFont(new Font("SansSerif", Font.BOLD, 24)); Graphics2D graphics = (Graphics2D) g; graphics.setRenderingHint(RenderingHints.KEY_TEXT_ANTIALIASING, RenderingHints.VALUE_TEXT_ANTIALIAS_ON); graphics.drawString("JAVA", 10, 20); int width = image.getWidth(), height = image.getHeight(); for (int y = 0; y < height; y++) { StringBuilder sb = new StringBuilder(); for (int x = 0; x < width; x++) { sb.append(image.getRGB(x, y) == -16777216 ? " " : "$"); } if (sb.toString().trim().isEmpty()) { continue; } System.out.println(sb); //Print image out } } }