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 }
|