modules/graphics/src/test/java/com/sun/javafx/iio/ImageTestHelper.java

Print this page
rev 7652 : BI_BITFIELDS


  23  * questions.
  24  */
  25 
  26 package com.sun.javafx.iio;
  27 
  28 import java.awt.Color;
  29 import java.awt.GradientPaint;
  30 import java.awt.Graphics2D;
  31 import java.awt.image.BufferedImage;
  32 import java.io.ByteArrayInputStream;
  33 import java.io.ByteArrayOutputStream;
  34 import java.io.File;
  35 import java.io.IOException;
  36 import java.util.Iterator;
  37 import java.util.Random;
  38 import javax.imageio.IIOImage;
  39 import javax.imageio.ImageIO;
  40 import javax.imageio.ImageWriteParam;
  41 import javax.imageio.ImageWriter;
  42 import javax.imageio.stream.ImageOutputStream;
  43 import static org.junit.Assert.fail;
  44 
  45 public class ImageTestHelper {
  46 
  47     static void writeImage(BufferedImage bImg, String fileName, String format, String compression) {


  48         if (fileName != null) {
  49             File file = new File(fileName);
  50             file.delete();
  51             writeImage(bImg, file, format, compression);
  52         }
  53     }
  54 
  55     static void writeImage(BufferedImage bImg, Object out, String format, String compression) {


  56         try (ImageOutputStream ios = ImageIO.createImageOutputStream(out)) {
  57             Iterator<ImageWriter> iter = ImageIO.getImageWritersByFormatName(format);
  58             ImageWriter writer = iter.next();
  59             ImageWriteParam iwp = writer.getDefaultWriteParam();
  60             if (compression != null) {
  61                 iwp.setCompressionMode(ImageWriteParam.MODE_EXPLICIT);
  62                 iwp.setCompressionType(compression);
  63             }
  64             writer.setOutput(ios);
  65             try {
  66                 writer.write(null, new IIOImage(bImg, null, null), iwp);
  67             } finally {
  68                 writer.dispose();
  69                 ios.flush();
  70             }
  71         } catch (IOException e) {
  72             fail("unexpected IOException: " + e);
  73         }
  74     }
  75 
  76     static ByteArrayInputStream writeImageToStream(BufferedImage bImg,
  77             String format, String compression, File file)
  78     {
  79         ByteArrayOutputStream out = new ByteArrayOutputStream();
  80         writeImage(bImg, out, format, compression);
  81         if (file != null) {
  82             writeImage(bImg, file, format, compression);
  83         }
  84         return new ByteArrayInputStream(out.toByteArray());
  85     }
  86 
  87     static void drawImageGradient(BufferedImage bImg) {
  88         int w = bImg.getWidth();
  89         int h = bImg.getHeight();
  90         Graphics2D graphics = bImg.createGraphics();
  91         GradientPaint g = new GradientPaint(0, 0, Color.RED, w, h, Color.GREEN);
  92         graphics.setPaint(g);
  93         graphics.fillRect(0, 0, w, h);
  94     }
  95 
  96     static void drawImageRandom(BufferedImage bImg) {
  97         int w = bImg.getWidth();
  98         int h = bImg.getHeight();
  99         Random r = new Random(1);
 100         for (int y = 0; y < h; y++) {
 101             for (int x = 0; x < w; x++) {
 102                 bImg.setRGB(x, y, r.nextInt(1 << 24));
 103             }




  23  * questions.
  24  */
  25 
  26 package com.sun.javafx.iio;
  27 
  28 import java.awt.Color;
  29 import java.awt.GradientPaint;
  30 import java.awt.Graphics2D;
  31 import java.awt.image.BufferedImage;
  32 import java.io.ByteArrayInputStream;
  33 import java.io.ByteArrayOutputStream;
  34 import java.io.File;
  35 import java.io.IOException;
  36 import java.util.Iterator;
  37 import java.util.Random;
  38 import javax.imageio.IIOImage;
  39 import javax.imageio.ImageIO;
  40 import javax.imageio.ImageWriteParam;
  41 import javax.imageio.ImageWriter;
  42 import javax.imageio.stream.ImageOutputStream;

  43 
  44 public class ImageTestHelper {
  45 
  46     static void writeImage(BufferedImage bImg, String fileName, String format, String compression)
  47             throws IOException
  48     {
  49         if (fileName != null) {
  50             File file = new File(fileName);
  51             file.delete();
  52             writeImage(bImg, file, format, compression);
  53         }
  54     }
  55 
  56     static void writeImage(BufferedImage bImg, Object out, String format, String compression)
  57             throws IOException
  58     {
  59         try (ImageOutputStream ios = ImageIO.createImageOutputStream(out)) {
  60             Iterator<ImageWriter> iter = ImageIO.getImageWritersByFormatName(format);
  61             ImageWriter writer = iter.next();
  62             ImageWriteParam iwp = writer.getDefaultWriteParam();
  63             if (compression != null) {
  64                 iwp.setCompressionMode(ImageWriteParam.MODE_EXPLICIT);
  65                 iwp.setCompressionType(compression);
  66             }
  67             writer.setOutput(ios);
  68             try {
  69                 writer.write(null, new IIOImage(bImg, null, null), iwp);
  70             } finally {
  71                 writer.dispose();
  72                 ios.flush();
  73             }


  74         }
  75     }
  76 
  77     static ByteArrayInputStream writeImageToStream(BufferedImage bImg,
  78             String format, String compression) throws IOException
  79     {
  80         ByteArrayOutputStream out = new ByteArrayOutputStream();
  81         writeImage(bImg, out, format, compression);



  82         return new ByteArrayInputStream(out.toByteArray());
  83     }
  84 
  85     static void drawImageGradient(BufferedImage bImg) {
  86         int w = bImg.getWidth();
  87         int h = bImg.getHeight();
  88         Graphics2D graphics = bImg.createGraphics();
  89         GradientPaint g = new GradientPaint(0, 0, Color.RED, w, h, Color.GREEN);
  90         graphics.setPaint(g);
  91         graphics.fillRect(0, 0, w, h);
  92     }
  93 
  94     static void drawImageRandom(BufferedImage bImg) {
  95         int w = bImg.getWidth();
  96         int h = bImg.getHeight();
  97         Random r = new Random(1);
  98         for (int y = 0; y < h; y++) {
  99             for (int x = 0; x < w; x++) {
 100                 bImg.setRGB(x, y, r.nextInt(1 << 24));
 101             }