--- old/modules/graphics/src/test/java/com/sun/javafx/iio/ImageTestHelper.java 2015-09-11 21:24:01.273287250 -0400 +++ /dev/null 2015-09-11 11:06:08.592686920 -0400 @@ -1,179 +0,0 @@ -/* - * Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. Oracle designates this - * particular file as subject to the "Classpath" exception as provided - * by Oracle in the LICENSE file that accompanied this code. - * - * This code is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -package com.sun.javafx.iio; - -import java.awt.Color; -import java.awt.GradientPaint; -import java.awt.Graphics2D; -import java.awt.image.BufferedImage; -import java.io.ByteArrayInputStream; -import java.io.ByteArrayOutputStream; -import java.io.File; -import java.io.FilterInputStream; -import java.io.IOException; -import java.io.InputStream; -import java.util.Iterator; -import java.util.Random; -import javax.imageio.IIOImage; -import javax.imageio.ImageIO; -import javax.imageio.ImageWriteParam; -import javax.imageio.ImageWriter; -import javax.imageio.stream.ImageOutputStream; - -public class ImageTestHelper { - - public static void writeImage(BufferedImage bImg, String fileName, String format, String compression) - throws IOException - { - if (fileName != null) { - File file = new File(fileName); - file.delete(); - writeImage(bImg, file, format, compression); - } - } - - public static void writeImage(BufferedImage bImg, Object out, String format, String compression) - throws IOException - { - try (ImageOutputStream ios = ImageIO.createImageOutputStream(out)) { - Iterator iter = ImageIO.getImageWritersByFormatName(format); - ImageWriter writer = iter.next(); - ImageWriteParam iwp = writer.getDefaultWriteParam(); - if (compression != null) { - iwp.setCompressionMode(ImageWriteParam.MODE_EXPLICIT); - iwp.setCompressionType(compression); - } - writer.setOutput(ios); - try { - writer.write(null, new IIOImage(bImg, null, null), iwp); - } finally { - writer.dispose(); - ios.flush(); - } - } - } - - public static ByteArrayInputStream writeImageToStream(BufferedImage bImg, - String format, String compression) throws IOException - { - ByteArrayOutputStream out = new ByteArrayOutputStream(); - writeImage(bImg, out, format, compression); - return new ByteArrayInputStream(out.toByteArray()); - } - - public static void drawImageGradient(BufferedImage bImg) { - int w = bImg.getWidth(); - int h = bImg.getHeight(); - Graphics2D graphics = bImg.createGraphics(); - GradientPaint g = new GradientPaint(0, 0, Color.RED, w, h, Color.GREEN); - graphics.setPaint(g); - graphics.fillRect(0, 0, w, h); - } - - public static void drawImageRandom(BufferedImage bImg) { - int w = bImg.getWidth(); - int h = bImg.getHeight(); - Random r = new Random(1); - for (int y = 0; y < h; y++) { - for (int x = 0; x < w; x++) { - bImg.setRGB(x, y, r.nextInt(1 << 24)); - } - } - } - - public static void drawImageHue(BufferedImage bImg) { - int w = bImg.getWidth(); - int h = bImg.getHeight(); - for (int y = 0; y < h; y++) { - float s = 2.0f * y / h; - if (s > 1) { - s = 1; - } - float b = 2.0f * (h - y) / h; - if (b > 1) { - b = 1; - } - for (int x = 0; x < w; x++) { - float hue = (float) x / w; - bImg.setRGB(x, y, Color.HSBtoRGB(hue, s, b)); - } - } - } - - public static void drawImageAll(BufferedImage bImg) { - int w = bImg.getWidth(); - int h = bImg.getHeight(); - //if (h*w < (1<<24)) return; - for (int y = 0; y < h; y++) { - for (int x = 0; x < w; x++) { - bImg.setRGB(x, y, y * h + x); - } - } - } - - public static InputStream createTestImageStream(String format) - throws IOException - { - BufferedImage bImg = new BufferedImage(509, 157, BufferedImage.TYPE_INT_RGB); - ImageTestHelper.drawImageRandom(bImg); - return ImageTestHelper.writeImageToStream(bImg, format, null); - } - - public static InputStream createStutteringInputStream(InputStream in) { - return new FilterInputStream(in) { - - private final Random rnd = new Random(0); - private int numReadStutters = 10; - private int numSkipStutters = 10; - - @Override - public int read(byte[] b, int off, int len) throws IOException { - if (numReadStutters > 0 && rnd.nextBoolean()) { - numReadStutters--; - return 0; - } - return in.read(b, off, 1); - } - - @Override - public long skip(long n) throws IOException { - if (numSkipStutters > 0 && rnd.nextBoolean()) { - numSkipStutters--; - return 0; - } - return in.skip(1); - } - }; - } - - public static ByteArrayInputStream constructStreamFromInts(int[] ints) { - byte[] bytes = new byte[ints.length]; - for (int i = 0; i < ints.length; i++) { - bytes[i] = (byte)ints[i]; - } - return new ByteArrayInputStream(bytes); - } -} --- /dev/null 2015-09-11 11:06:08.592686920 -0400 +++ new/modules/graphics/src/test/java/test/com/sun/javafx/iio/ImageTestHelper.java 2015-09-11 21:24:01.133287251 -0400 @@ -0,0 +1,179 @@ +/* + * Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +package test.com.sun.javafx.iio; + +import java.awt.Color; +import java.awt.GradientPaint; +import java.awt.Graphics2D; +import java.awt.image.BufferedImage; +import java.io.ByteArrayInputStream; +import java.io.ByteArrayOutputStream; +import java.io.File; +import java.io.FilterInputStream; +import java.io.IOException; +import java.io.InputStream; +import java.util.Iterator; +import java.util.Random; +import javax.imageio.IIOImage; +import javax.imageio.ImageIO; +import javax.imageio.ImageWriteParam; +import javax.imageio.ImageWriter; +import javax.imageio.stream.ImageOutputStream; + +public class ImageTestHelper { + + public static void writeImage(BufferedImage bImg, String fileName, String format, String compression) + throws IOException + { + if (fileName != null) { + File file = new File(fileName); + file.delete(); + writeImage(bImg, file, format, compression); + } + } + + public static void writeImage(BufferedImage bImg, Object out, String format, String compression) + throws IOException + { + try (ImageOutputStream ios = ImageIO.createImageOutputStream(out)) { + Iterator iter = ImageIO.getImageWritersByFormatName(format); + ImageWriter writer = iter.next(); + ImageWriteParam iwp = writer.getDefaultWriteParam(); + if (compression != null) { + iwp.setCompressionMode(ImageWriteParam.MODE_EXPLICIT); + iwp.setCompressionType(compression); + } + writer.setOutput(ios); + try { + writer.write(null, new IIOImage(bImg, null, null), iwp); + } finally { + writer.dispose(); + ios.flush(); + } + } + } + + public static ByteArrayInputStream writeImageToStream(BufferedImage bImg, + String format, String compression) throws IOException + { + ByteArrayOutputStream out = new ByteArrayOutputStream(); + writeImage(bImg, out, format, compression); + return new ByteArrayInputStream(out.toByteArray()); + } + + public static void drawImageGradient(BufferedImage bImg) { + int w = bImg.getWidth(); + int h = bImg.getHeight(); + Graphics2D graphics = bImg.createGraphics(); + GradientPaint g = new GradientPaint(0, 0, Color.RED, w, h, Color.GREEN); + graphics.setPaint(g); + graphics.fillRect(0, 0, w, h); + } + + public static void drawImageRandom(BufferedImage bImg) { + int w = bImg.getWidth(); + int h = bImg.getHeight(); + Random r = new Random(1); + for (int y = 0; y < h; y++) { + for (int x = 0; x < w; x++) { + bImg.setRGB(x, y, r.nextInt(1 << 24)); + } + } + } + + public static void drawImageHue(BufferedImage bImg) { + int w = bImg.getWidth(); + int h = bImg.getHeight(); + for (int y = 0; y < h; y++) { + float s = 2.0f * y / h; + if (s > 1) { + s = 1; + } + float b = 2.0f * (h - y) / h; + if (b > 1) { + b = 1; + } + for (int x = 0; x < w; x++) { + float hue = (float) x / w; + bImg.setRGB(x, y, Color.HSBtoRGB(hue, s, b)); + } + } + } + + public static void drawImageAll(BufferedImage bImg) { + int w = bImg.getWidth(); + int h = bImg.getHeight(); + //if (h*w < (1<<24)) return; + for (int y = 0; y < h; y++) { + for (int x = 0; x < w; x++) { + bImg.setRGB(x, y, y * h + x); + } + } + } + + public static InputStream createTestImageStream(String format) + throws IOException + { + BufferedImage bImg = new BufferedImage(509, 157, BufferedImage.TYPE_INT_RGB); + ImageTestHelper.drawImageRandom(bImg); + return ImageTestHelper.writeImageToStream(bImg, format, null); + } + + public static InputStream createStutteringInputStream(InputStream in) { + return new FilterInputStream(in) { + + private final Random rnd = new Random(0); + private int numReadStutters = 10; + private int numSkipStutters = 10; + + @Override + public int read(byte[] b, int off, int len) throws IOException { + if (numReadStutters > 0 && rnd.nextBoolean()) { + numReadStutters--; + return 0; + } + return in.read(b, off, 1); + } + + @Override + public long skip(long n) throws IOException { + if (numSkipStutters > 0 && rnd.nextBoolean()) { + numSkipStutters--; + return 0; + } + return in.skip(1); + } + }; + } + + public static ByteArrayInputStream constructStreamFromInts(int[] ints) { + byte[] bytes = new byte[ints.length]; + for (int i = 0; i < ints.length; i++) { + bytes[i] = (byte)ints[i]; + } + return new ByteArrayInputStream(bytes); + } +}