package com.github.jaiimageio; import com.github.jaiimageio.plugins.pnm.PNMImageWriteParam; import java.awt.image.BufferedImage; import java.io.File; import java.io.IOException; import java.util.Iterator; import java.util.Random; import javax.imageio.IIOImage; import javax.imageio.ImageIO; import javax.imageio.ImageWriter; import javax.imageio.stream.ImageOutputStream; import org.junit.Before; import org.junit.Test; import static org.junit.Assert.assertTrue; /** * Test PPM writing, ASCII and RAW. * @author peterhull90@gmail.com */ public class PnmWriteTest { private final BufferedImage image = new BufferedImage(16, 16, BufferedImage.TYPE_INT_RGB); @Before public void randomize() { Random r = new Random(1337); for (int x=0; x<16; x++) { for (int y=0; y<16; y++) { image.setRGB(x, y, r.nextInt()); } } } @Test public void writeRaw() throws Exception { File f = File.createTempFile("test-raw", ".ppm"); f.deleteOnExit(); //System.out.println(f); write(f, true, image); } @Test public void writeAscii() throws Exception { File f = File.createTempFile("test-ascii", ".ppm"); f.deleteOnExit(); write(f, false, image); } private static void write(File f, boolean raw, BufferedImage image) throws IOException { Iterator<ImageWriter> writers = ImageIO.getImageWritersBySuffix("ppm"); assertTrue(writers.hasNext()); ImageWriter writer = writers.next(); PNMImageWriteParam params = (PNMImageWriteParam) writer.getDefaultWriteParam(); params.setRaw(raw); ImageOutputStream ios = ImageIO.createImageOutputStream(f); writer.setOutput(ios); writer.write(null, new IIOImage(image, null, null), params); writer.dispose(); ios.close(); } }