import java.io.*; import javax.imageio.*; import java.awt.image.*; import java.awt.*; import java.lang.*; import java.lang.Math.*; import java.util.*; import java.util.Arrays.*; public class PlaceDots { public static void main(String args[ ]) throws IOException { String[] filename = new String[6]; filename[0]=args[0]; filename[1]="InitialPositions.txt"; ReadLines(filename); } static void ReadLines(String[] filename) throws IOException { BufferedReader in = new BufferedReader(new FileReader(filename[1])); int lineCount = 0; do { String line = in.readLine(); if (line == null) break; lineCount++; } while (true); double[][] Coord = new double [lineCount][2]; LineNumberReader lnr = new LineNumberReader(new FileReader(filename[1])); lnr.setLineNumber(1); StreamTokenizer stok = new StreamTokenizer(lnr); stok.parseNumbers(); stok.eolIsSignificant(true); stok.nextToken(); int rownum = -1; while (stok.ttype != StreamTokenizer.TT_EOF) { double x=0; double y=0; while (stok.ttype != StreamTokenizer.TT_EOF) { for (int colnum=1; colnum<=3; colnum++) { if (colnum==1) {x=stok.nval; } if (colnum==2) {y=stok.nval; } if (colnum==3) {stok.nextToken(); rownum++; break;} stok.nextToken(); } Coord[rownum][0]=x; Coord[rownum][1]=y; if (stok.ttype == StreamTokenizer.TT_EOF) {break;} } if (stok.ttype == StreamTokenizer.TT_EOF) {break;} } double MaxX = 0; double MaxY = 0; for (int i = 0; i <= Coord.length-1; i++) { if (Coord[i][0] > MaxX) { MaxX = Coord[i][0]; } if (Coord[i][1] > MaxY) { MaxY = Coord[i][1]; } } int width = (int)MaxX; int height = (int)MaxY; BufferedImage image = new BufferedImage(width + 10, height + 10, BufferedImage.TYPE_INT_RGB); String format = "JPG"; if (filename[0].toLowerCase().endsWith(".png")) {format = "PNG";} if (filename[0].toLowerCase().endsWith(".bmp")) {format = "BMP";} else if (!(filename[0].toLowerCase().endsWith(".bmp")) && !(filename[0].toLowerCase().endsWith(".png")) && !(filename[0].toLowerCase().endsWith(".jpg"))) {System.out.println("Error: choose only .jpg, .png, or .bmp images");} for (int i = 0; i <= Coord.length-1; i++) { Graphics graphics = image.getGraphics(); Color color = new Color(0, 255, 0); graphics.setColor(color); graphics.fillRect((int)Coord[i][0] - 3, (int)Coord[i][1] - 3, 6, 6); } ImageIO.write(image, format, new File(filename[0])); } }