This program converts an image from text format to .png
image format.
Usage: java TextImage input_file output_file
.
The defaults are input_file=text1.txt and output_file=text.png
These small images are typically used to test image processing routines because they are small enough to
print as a matrix. See listImage.java
You can enlarge the output by replicating, as shown by showSmImage.java
, which was used to
generate the following image of text.png
TextImage.java
import java.io.BufferedReader; import java.io.FileReader; import java.io.IOException; import java.io.File; import java.awt.image.*; import javax.imageio.*; public class TextImage { public static void main(String[] args) { String inf, outf; if (args.length<1) inf = "text1.txt"; else inf = args[0]; if (args.length<2) outf = "text.png"; else outf = args[1]; int type = BufferedImage.TYPE_INT_RGB; BufferedImage out = null; int value[] = null; int v,r,g,b; int npix=0; int j=0; try ( BufferedReader br = new BufferedReader(new FileReader(inf)); ) { String s; while ((s = br.readLine()) != null) { String [] tokens = s.trim().split("[\\s]+"); if (out==null) { npix = tokens.length; System.out.format("image size %d x %d\n",npix,npix); out = new BufferedImage(npix,npix,type); value = new int[npix]; } for (int i=0; i<npix; i++) { v = Integer.parseInt(tokens[i])&0xFF; value[i] = 0xFF000000 | (v << 16) | (v << 8) | v; } out.setRGB(0, j++, npix, 1, value, 0, npix); } br.close(); } catch (IOException e) { System.out.println("file not found: " + inf); //e.printStackTrace(); } try { ImageIO.write(out, "png", new File(outf)); } catch (IOException e) { System.out.println("image write failed"); System.out.println(e); System.exit(-1); } } }
Maintained by John Loomis, updated Sat Mar 10 14:53:11 2018