jdk/test/sun/java2d/pipe/InterpolationQualityTest.java
author goetz
Tue, 14 Jun 2016 10:44:59 +0200
changeset 39056 d99e63b6d962
parent 13986 7410b6bd0b77
permissions -rw-r--r--
8159690: [TESTBUG] Mark headful tests with @key headful. Reviewed-by: simonis, alexsch
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
13986
7410b6bd0b77 8000176: Need automated test for checking scale quality
bae
parents:
diff changeset
     1
/*
39056
d99e63b6d962 8159690: [TESTBUG] Mark headful tests with @key headful.
goetz
parents: 13986
diff changeset
     2
 * Copyright (c) 2012, 2016, Oracle and/or its affiliates. All rights reserved.
13986
7410b6bd0b77 8000176: Need automated test for checking scale quality
bae
parents:
diff changeset
     3
 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
7410b6bd0b77 8000176: Need automated test for checking scale quality
bae
parents:
diff changeset
     4
 *
7410b6bd0b77 8000176: Need automated test for checking scale quality
bae
parents:
diff changeset
     5
 * This code is free software; you can redistribute it and/or modify it
7410b6bd0b77 8000176: Need automated test for checking scale quality
bae
parents:
diff changeset
     6
 * under the terms of the GNU General Public License version 2 only, as
7410b6bd0b77 8000176: Need automated test for checking scale quality
bae
parents:
diff changeset
     7
 * published by the Free Software Foundation.
7410b6bd0b77 8000176: Need automated test for checking scale quality
bae
parents:
diff changeset
     8
 *
7410b6bd0b77 8000176: Need automated test for checking scale quality
bae
parents:
diff changeset
     9
 * This code is distributed in the hope that it will be useful, but WITHOUT
7410b6bd0b77 8000176: Need automated test for checking scale quality
bae
parents:
diff changeset
    10
 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
7410b6bd0b77 8000176: Need automated test for checking scale quality
bae
parents:
diff changeset
    11
 * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
7410b6bd0b77 8000176: Need automated test for checking scale quality
bae
parents:
diff changeset
    12
 * version 2 for more details (a copy is included in the LICENSE file that
7410b6bd0b77 8000176: Need automated test for checking scale quality
bae
parents:
diff changeset
    13
 * accompanied this code).
7410b6bd0b77 8000176: Need automated test for checking scale quality
bae
parents:
diff changeset
    14
 *
7410b6bd0b77 8000176: Need automated test for checking scale quality
bae
parents:
diff changeset
    15
 * You should have received a copy of the GNU General Public License version
7410b6bd0b77 8000176: Need automated test for checking scale quality
bae
parents:
diff changeset
    16
 * 2 along with this work; if not, write to the Free Software Foundation,
7410b6bd0b77 8000176: Need automated test for checking scale quality
bae
parents:
diff changeset
    17
 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
7410b6bd0b77 8000176: Need automated test for checking scale quality
bae
parents:
diff changeset
    18
 *
7410b6bd0b77 8000176: Need automated test for checking scale quality
bae
parents:
diff changeset
    19
 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
7410b6bd0b77 8000176: Need automated test for checking scale quality
bae
parents:
diff changeset
    20
 * or visit www.oracle.com if you need additional information or have any
7410b6bd0b77 8000176: Need automated test for checking scale quality
bae
parents:
diff changeset
    21
 * questions.
7410b6bd0b77 8000176: Need automated test for checking scale quality
bae
parents:
diff changeset
    22
 */
7410b6bd0b77 8000176: Need automated test for checking scale quality
bae
parents:
diff changeset
    23
7410b6bd0b77 8000176: Need automated test for checking scale quality
bae
parents:
diff changeset
    24
/*
7410b6bd0b77 8000176: Need automated test for checking scale quality
bae
parents:
diff changeset
    25
 * @test
39056
d99e63b6d962 8159690: [TESTBUG] Mark headful tests with @key headful.
goetz
parents: 13986
diff changeset
    26
 * @key headful
13986
7410b6bd0b77 8000176: Need automated test for checking scale quality
bae
parents:
diff changeset
    27
 * @bug 7188093 8000176
7410b6bd0b77 8000176: Need automated test for checking scale quality
bae
parents:
diff changeset
    28
 * @summary Tests each of the 3 possible methods for rendering an upscaled
7410b6bd0b77 8000176: Need automated test for checking scale quality
bae
parents:
diff changeset
    29
 * image via rendering hints for default, xrender and opengl pipelines.
7410b6bd0b77 8000176: Need automated test for checking scale quality
bae
parents:
diff changeset
    30
 *
7410b6bd0b77 8000176: Need automated test for checking scale quality
bae
parents:
diff changeset
    31
 * @author Vadim.Pakhnushev@oracle.com
7410b6bd0b77 8000176: Need automated test for checking scale quality
bae
parents:
diff changeset
    32
 * @run main/othervm -Dsun.java2d.xrender=false InterpolationQualityTest
7410b6bd0b77 8000176: Need automated test for checking scale quality
bae
parents:
diff changeset
    33
 * @run main/othervm -Dsun.java2d.xrender=True InterpolationQualityTest
7410b6bd0b77 8000176: Need automated test for checking scale quality
bae
parents:
diff changeset
    34
 * @run main/othervm -Dsun.java2d.opengl=True InterpolationQualityTest
7410b6bd0b77 8000176: Need automated test for checking scale quality
bae
parents:
diff changeset
    35
 * @run main/othervm -Dsun.java2d.d3d=false InterpolationQualityTest
7410b6bd0b77 8000176: Need automated test for checking scale quality
bae
parents:
diff changeset
    36
 * @run main/othervm -Dsun.java2d.d3d=True InterpolationQualityTest
7410b6bd0b77 8000176: Need automated test for checking scale quality
bae
parents:
diff changeset
    37
 */
7410b6bd0b77 8000176: Need automated test for checking scale quality
bae
parents:
diff changeset
    38
7410b6bd0b77 8000176: Need automated test for checking scale quality
bae
parents:
diff changeset
    39
import java.awt.*;
7410b6bd0b77 8000176: Need automated test for checking scale quality
bae
parents:
diff changeset
    40
import java.awt.image.*;
7410b6bd0b77 8000176: Need automated test for checking scale quality
bae
parents:
diff changeset
    41
import java.io.File;
7410b6bd0b77 8000176: Need automated test for checking scale quality
bae
parents:
diff changeset
    42
import java.io.IOException;
7410b6bd0b77 8000176: Need automated test for checking scale quality
bae
parents:
diff changeset
    43
import javax.imageio.ImageIO;
7410b6bd0b77 8000176: Need automated test for checking scale quality
bae
parents:
diff changeset
    44
7410b6bd0b77 8000176: Need automated test for checking scale quality
bae
parents:
diff changeset
    45
public class InterpolationQualityTest {
7410b6bd0b77 8000176: Need automated test for checking scale quality
bae
parents:
diff changeset
    46
7410b6bd0b77 8000176: Need automated test for checking scale quality
bae
parents:
diff changeset
    47
    private static final int testSize = 4, scaleFactor = 20, tolerance = 3;
7410b6bd0b77 8000176: Need automated test for checking scale quality
bae
parents:
diff changeset
    48
    private static final int sw = testSize * scaleFactor;
7410b6bd0b77 8000176: Need automated test for checking scale quality
bae
parents:
diff changeset
    49
    private static final int sh = testSize * scaleFactor;
7410b6bd0b77 8000176: Need automated test for checking scale quality
bae
parents:
diff changeset
    50
7410b6bd0b77 8000176: Need automated test for checking scale quality
bae
parents:
diff changeset
    51
    private Image testImage;
7410b6bd0b77 8000176: Need automated test for checking scale quality
bae
parents:
diff changeset
    52
    private VolatileImage vImg;
7410b6bd0b77 8000176: Need automated test for checking scale quality
bae
parents:
diff changeset
    53
7410b6bd0b77 8000176: Need automated test for checking scale quality
bae
parents:
diff changeset
    54
    public InterpolationQualityTest() {
7410b6bd0b77 8000176: Need automated test for checking scale quality
bae
parents:
diff changeset
    55
        testImage = createTestImage();
7410b6bd0b77 8000176: Need automated test for checking scale quality
bae
parents:
diff changeset
    56
    }
7410b6bd0b77 8000176: Need automated test for checking scale quality
bae
parents:
diff changeset
    57
7410b6bd0b77 8000176: Need automated test for checking scale quality
bae
parents:
diff changeset
    58
    private Image createTestImage() {
7410b6bd0b77 8000176: Need automated test for checking scale quality
bae
parents:
diff changeset
    59
        BufferedImage bi = new BufferedImage(testSize, testSize, BufferedImage.TYPE_INT_ARGB);
7410b6bd0b77 8000176: Need automated test for checking scale quality
bae
parents:
diff changeset
    60
        Graphics2D g = bi.createGraphics();
7410b6bd0b77 8000176: Need automated test for checking scale quality
bae
parents:
diff changeset
    61
        g.setColor(Color.BLACK);
7410b6bd0b77 8000176: Need automated test for checking scale quality
bae
parents:
diff changeset
    62
        g.fillRect(0, 0, testSize, testSize);
7410b6bd0b77 8000176: Need automated test for checking scale quality
bae
parents:
diff changeset
    63
        for (int i = 0; i < testSize; i++) {
7410b6bd0b77 8000176: Need automated test for checking scale quality
bae
parents:
diff changeset
    64
            bi.setRGB(i, i, Color.WHITE.getRGB());
7410b6bd0b77 8000176: Need automated test for checking scale quality
bae
parents:
diff changeset
    65
        }
7410b6bd0b77 8000176: Need automated test for checking scale quality
bae
parents:
diff changeset
    66
        return bi;
7410b6bd0b77 8000176: Need automated test for checking scale quality
bae
parents:
diff changeset
    67
    }
7410b6bd0b77 8000176: Need automated test for checking scale quality
bae
parents:
diff changeset
    68
7410b6bd0b77 8000176: Need automated test for checking scale quality
bae
parents:
diff changeset
    69
    private BufferedImage createReferenceImage(Object hint) {
7410b6bd0b77 8000176: Need automated test for checking scale quality
bae
parents:
diff changeset
    70
        BufferedImage bi = new BufferedImage(sw, sh, BufferedImage.TYPE_INT_ARGB);
7410b6bd0b77 8000176: Need automated test for checking scale quality
bae
parents:
diff changeset
    71
        Graphics2D g2d = bi.createGraphics();
7410b6bd0b77 8000176: Need automated test for checking scale quality
bae
parents:
diff changeset
    72
        drawImage(g2d, hint);
7410b6bd0b77 8000176: Need automated test for checking scale quality
bae
parents:
diff changeset
    73
        return bi;
7410b6bd0b77 8000176: Need automated test for checking scale quality
bae
parents:
diff changeset
    74
    }
7410b6bd0b77 8000176: Need automated test for checking scale quality
bae
parents:
diff changeset
    75
7410b6bd0b77 8000176: Need automated test for checking scale quality
bae
parents:
diff changeset
    76
    private void drawImage(Graphics2D g2d, Object hint) {
7410b6bd0b77 8000176: Need automated test for checking scale quality
bae
parents:
diff changeset
    77
        g2d.setRenderingHint(RenderingHints.KEY_INTERPOLATION, hint);
7410b6bd0b77 8000176: Need automated test for checking scale quality
bae
parents:
diff changeset
    78
        g2d.drawImage(testImage, 0, 0, sw, sh, null);
7410b6bd0b77 8000176: Need automated test for checking scale quality
bae
parents:
diff changeset
    79
    }
7410b6bd0b77 8000176: Need automated test for checking scale quality
bae
parents:
diff changeset
    80
7410b6bd0b77 8000176: Need automated test for checking scale quality
bae
parents:
diff changeset
    81
    private GraphicsConfiguration getDefaultGC() {
7410b6bd0b77 8000176: Need automated test for checking scale quality
bae
parents:
diff changeset
    82
        return GraphicsEnvironment.getLocalGraphicsEnvironment().
7410b6bd0b77 8000176: Need automated test for checking scale quality
bae
parents:
diff changeset
    83
                getDefaultScreenDevice().getDefaultConfiguration();
7410b6bd0b77 8000176: Need automated test for checking scale quality
bae
parents:
diff changeset
    84
    }
7410b6bd0b77 8000176: Need automated test for checking scale quality
bae
parents:
diff changeset
    85
7410b6bd0b77 8000176: Need automated test for checking scale quality
bae
parents:
diff changeset
    86
    private void createVImg() {
7410b6bd0b77 8000176: Need automated test for checking scale quality
bae
parents:
diff changeset
    87
        vImg = getDefaultGC().createCompatibleVolatileImage(sw, sh);
7410b6bd0b77 8000176: Need automated test for checking scale quality
bae
parents:
diff changeset
    88
    }
7410b6bd0b77 8000176: Need automated test for checking scale quality
bae
parents:
diff changeset
    89
7410b6bd0b77 8000176: Need automated test for checking scale quality
bae
parents:
diff changeset
    90
    private void renderOffscreen(Object hint) {
7410b6bd0b77 8000176: Need automated test for checking scale quality
bae
parents:
diff changeset
    91
        Graphics2D g = vImg.createGraphics();
7410b6bd0b77 8000176: Need automated test for checking scale quality
bae
parents:
diff changeset
    92
        drawImage(g, hint);
7410b6bd0b77 8000176: Need automated test for checking scale quality
bae
parents:
diff changeset
    93
        g.dispose();
7410b6bd0b77 8000176: Need automated test for checking scale quality
bae
parents:
diff changeset
    94
    }
7410b6bd0b77 8000176: Need automated test for checking scale quality
bae
parents:
diff changeset
    95
7410b6bd0b77 8000176: Need automated test for checking scale quality
bae
parents:
diff changeset
    96
    private BufferedImage renderImage(Object hint) {
7410b6bd0b77 8000176: Need automated test for checking scale quality
bae
parents:
diff changeset
    97
        BufferedImage snapshot;
7410b6bd0b77 8000176: Need automated test for checking scale quality
bae
parents:
diff changeset
    98
        createVImg();
7410b6bd0b77 8000176: Need automated test for checking scale quality
bae
parents:
diff changeset
    99
        renderOffscreen(hint);
7410b6bd0b77 8000176: Need automated test for checking scale quality
bae
parents:
diff changeset
   100
7410b6bd0b77 8000176: Need automated test for checking scale quality
bae
parents:
diff changeset
   101
        do {
7410b6bd0b77 8000176: Need automated test for checking scale quality
bae
parents:
diff changeset
   102
            int status = vImg.validate(getDefaultGC());
7410b6bd0b77 8000176: Need automated test for checking scale quality
bae
parents:
diff changeset
   103
            if (status != VolatileImage.IMAGE_OK) {
7410b6bd0b77 8000176: Need automated test for checking scale quality
bae
parents:
diff changeset
   104
                if (status == VolatileImage.IMAGE_INCOMPATIBLE) {
7410b6bd0b77 8000176: Need automated test for checking scale quality
bae
parents:
diff changeset
   105
                    createVImg();
7410b6bd0b77 8000176: Need automated test for checking scale quality
bae
parents:
diff changeset
   106
                }
7410b6bd0b77 8000176: Need automated test for checking scale quality
bae
parents:
diff changeset
   107
                renderOffscreen(hint);
7410b6bd0b77 8000176: Need automated test for checking scale quality
bae
parents:
diff changeset
   108
            }
7410b6bd0b77 8000176: Need automated test for checking scale quality
bae
parents:
diff changeset
   109
            snapshot = vImg.getSnapshot();
7410b6bd0b77 8000176: Need automated test for checking scale quality
bae
parents:
diff changeset
   110
        } while (vImg.contentsLost());
7410b6bd0b77 8000176: Need automated test for checking scale quality
bae
parents:
diff changeset
   111
        vImg.flush();
7410b6bd0b77 8000176: Need automated test for checking scale quality
bae
parents:
diff changeset
   112
        return snapshot;
7410b6bd0b77 8000176: Need automated test for checking scale quality
bae
parents:
diff changeset
   113
    }
7410b6bd0b77 8000176: Need automated test for checking scale quality
bae
parents:
diff changeset
   114
7410b6bd0b77 8000176: Need automated test for checking scale quality
bae
parents:
diff changeset
   115
    private boolean compareComponent(int comp1, int comp2) {
7410b6bd0b77 8000176: Need automated test for checking scale quality
bae
parents:
diff changeset
   116
        return Math.abs(comp1 - comp2) <= tolerance;
7410b6bd0b77 8000176: Need automated test for checking scale quality
bae
parents:
diff changeset
   117
    }
7410b6bd0b77 8000176: Need automated test for checking scale quality
bae
parents:
diff changeset
   118
7410b6bd0b77 8000176: Need automated test for checking scale quality
bae
parents:
diff changeset
   119
    private boolean compareRGB(int rgb1, int rgb2) {
7410b6bd0b77 8000176: Need automated test for checking scale quality
bae
parents:
diff changeset
   120
        Color col1 = new Color(rgb1);
7410b6bd0b77 8000176: Need automated test for checking scale quality
bae
parents:
diff changeset
   121
        Color col2 = new Color(rgb2);
7410b6bd0b77 8000176: Need automated test for checking scale quality
bae
parents:
diff changeset
   122
        return compareComponent(col1.getRed(), col2.getRed()) &&
7410b6bd0b77 8000176: Need automated test for checking scale quality
bae
parents:
diff changeset
   123
                compareComponent(col1.getBlue(), col2.getBlue()) &&
7410b6bd0b77 8000176: Need automated test for checking scale quality
bae
parents:
diff changeset
   124
                compareComponent(col1.getGreen(), col2.getGreen()) &&
7410b6bd0b77 8000176: Need automated test for checking scale quality
bae
parents:
diff changeset
   125
                compareComponent(col1.getAlpha(), col2.getAlpha());
7410b6bd0b77 8000176: Need automated test for checking scale quality
bae
parents:
diff changeset
   126
    }
7410b6bd0b77 8000176: Need automated test for checking scale quality
bae
parents:
diff changeset
   127
7410b6bd0b77 8000176: Need automated test for checking scale quality
bae
parents:
diff changeset
   128
    private boolean compareImages(BufferedImage img, BufferedImage ref, String imgName) {
7410b6bd0b77 8000176: Need automated test for checking scale quality
bae
parents:
diff changeset
   129
        for (int y = 0; y < ref.getHeight(); y++) {
7410b6bd0b77 8000176: Need automated test for checking scale quality
bae
parents:
diff changeset
   130
            for (int x = 0; x < ref.getWidth(); x++) {
7410b6bd0b77 8000176: Need automated test for checking scale quality
bae
parents:
diff changeset
   131
                if (!compareRGB(ref.getRGB(x, y), img.getRGB(x, y))) {
7410b6bd0b77 8000176: Need automated test for checking scale quality
bae
parents:
diff changeset
   132
                    System.out.println(imgName + ".getRGB(" + x + ", " + y + ") = "
7410b6bd0b77 8000176: Need automated test for checking scale quality
bae
parents:
diff changeset
   133
                            + new Color(img.getRGB(x, y)) + " != "
7410b6bd0b77 8000176: Need automated test for checking scale quality
bae
parents:
diff changeset
   134
                            + new Color(ref.getRGB(x, y)));
7410b6bd0b77 8000176: Need automated test for checking scale quality
bae
parents:
diff changeset
   135
                    return false;
7410b6bd0b77 8000176: Need automated test for checking scale quality
bae
parents:
diff changeset
   136
                }
7410b6bd0b77 8000176: Need automated test for checking scale quality
bae
parents:
diff changeset
   137
            }
7410b6bd0b77 8000176: Need automated test for checking scale quality
bae
parents:
diff changeset
   138
        }
7410b6bd0b77 8000176: Need automated test for checking scale quality
bae
parents:
diff changeset
   139
        return true;
7410b6bd0b77 8000176: Need automated test for checking scale quality
bae
parents:
diff changeset
   140
    }
7410b6bd0b77 8000176: Need automated test for checking scale quality
bae
parents:
diff changeset
   141
7410b6bd0b77 8000176: Need automated test for checking scale quality
bae
parents:
diff changeset
   142
    private boolean test(Object hint) {
7410b6bd0b77 8000176: Need automated test for checking scale quality
bae
parents:
diff changeset
   143
        BufferedImage refImage = createReferenceImage(hint);
7410b6bd0b77 8000176: Need automated test for checking scale quality
bae
parents:
diff changeset
   144
        BufferedImage resImage = renderImage(hint);
7410b6bd0b77 8000176: Need automated test for checking scale quality
bae
parents:
diff changeset
   145
7410b6bd0b77 8000176: Need automated test for checking scale quality
bae
parents:
diff changeset
   146
        boolean passed = compareImages(resImage, refImage, "resImage");
7410b6bd0b77 8000176: Need automated test for checking scale quality
bae
parents:
diff changeset
   147
        System.out.println(getHintName(hint) + (passed ? " passed." : " failed."));
7410b6bd0b77 8000176: Need automated test for checking scale quality
bae
parents:
diff changeset
   148
        if (!passed) {
7410b6bd0b77 8000176: Need automated test for checking scale quality
bae
parents:
diff changeset
   149
            dumpImage(refImage, "out_" + getHintName(hint) + "_ref.png");
7410b6bd0b77 8000176: Need automated test for checking scale quality
bae
parents:
diff changeset
   150
            dumpImage(resImage, "out_" + getHintName(hint) + ".png");
7410b6bd0b77 8000176: Need automated test for checking scale quality
bae
parents:
diff changeset
   151
        }
7410b6bd0b77 8000176: Need automated test for checking scale quality
bae
parents:
diff changeset
   152
        return passed;
7410b6bd0b77 8000176: Need automated test for checking scale quality
bae
parents:
diff changeset
   153
    }
7410b6bd0b77 8000176: Need automated test for checking scale quality
bae
parents:
diff changeset
   154
7410b6bd0b77 8000176: Need automated test for checking scale quality
bae
parents:
diff changeset
   155
    public void test() {
7410b6bd0b77 8000176: Need automated test for checking scale quality
bae
parents:
diff changeset
   156
        boolean passed = true;
7410b6bd0b77 8000176: Need automated test for checking scale quality
bae
parents:
diff changeset
   157
        passed &= test(RenderingHints.VALUE_INTERPOLATION_NEAREST_NEIGHBOR);
7410b6bd0b77 8000176: Need automated test for checking scale quality
bae
parents:
diff changeset
   158
        passed &= test(RenderingHints.VALUE_INTERPOLATION_BILINEAR);
7410b6bd0b77 8000176: Need automated test for checking scale quality
bae
parents:
diff changeset
   159
        passed &= test(RenderingHints.VALUE_INTERPOLATION_BICUBIC);
7410b6bd0b77 8000176: Need automated test for checking scale quality
bae
parents:
diff changeset
   160
        if (passed) {
7410b6bd0b77 8000176: Need automated test for checking scale quality
bae
parents:
diff changeset
   161
            System.out.println("Test PASSED.");
7410b6bd0b77 8000176: Need automated test for checking scale quality
bae
parents:
diff changeset
   162
        } else {
7410b6bd0b77 8000176: Need automated test for checking scale quality
bae
parents:
diff changeset
   163
            throw new RuntimeException("Test FAILED.");
7410b6bd0b77 8000176: Need automated test for checking scale quality
bae
parents:
diff changeset
   164
        }
7410b6bd0b77 8000176: Need automated test for checking scale quality
bae
parents:
diff changeset
   165
    }
7410b6bd0b77 8000176: Need automated test for checking scale quality
bae
parents:
diff changeset
   166
7410b6bd0b77 8000176: Need automated test for checking scale quality
bae
parents:
diff changeset
   167
    private String getHintName(Object hint) {
7410b6bd0b77 8000176: Need automated test for checking scale quality
bae
parents:
diff changeset
   168
        if (hint == RenderingHints.VALUE_INTERPOLATION_NEAREST_NEIGHBOR) {
7410b6bd0b77 8000176: Need automated test for checking scale quality
bae
parents:
diff changeset
   169
            return "nearest";
7410b6bd0b77 8000176: Need automated test for checking scale quality
bae
parents:
diff changeset
   170
        }
7410b6bd0b77 8000176: Need automated test for checking scale quality
bae
parents:
diff changeset
   171
        else if (hint == RenderingHints.VALUE_INTERPOLATION_BILINEAR) {
7410b6bd0b77 8000176: Need automated test for checking scale quality
bae
parents:
diff changeset
   172
            return "bilinear";
7410b6bd0b77 8000176: Need automated test for checking scale quality
bae
parents:
diff changeset
   173
        }
7410b6bd0b77 8000176: Need automated test for checking scale quality
bae
parents:
diff changeset
   174
        else if (hint == RenderingHints.VALUE_INTERPOLATION_BICUBIC) {
7410b6bd0b77 8000176: Need automated test for checking scale quality
bae
parents:
diff changeset
   175
            return "bicubic";
7410b6bd0b77 8000176: Need automated test for checking scale quality
bae
parents:
diff changeset
   176
        }
7410b6bd0b77 8000176: Need automated test for checking scale quality
bae
parents:
diff changeset
   177
        else {
7410b6bd0b77 8000176: Need automated test for checking scale quality
bae
parents:
diff changeset
   178
            return "null";
7410b6bd0b77 8000176: Need automated test for checking scale quality
bae
parents:
diff changeset
   179
        }
7410b6bd0b77 8000176: Need automated test for checking scale quality
bae
parents:
diff changeset
   180
    }
7410b6bd0b77 8000176: Need automated test for checking scale quality
bae
parents:
diff changeset
   181
7410b6bd0b77 8000176: Need automated test for checking scale quality
bae
parents:
diff changeset
   182
    private void dumpImage(BufferedImage bi, String name) {
7410b6bd0b77 8000176: Need automated test for checking scale quality
bae
parents:
diff changeset
   183
        try {
7410b6bd0b77 8000176: Need automated test for checking scale quality
bae
parents:
diff changeset
   184
            ImageIO.write(bi, "PNG", new File(name));
7410b6bd0b77 8000176: Need automated test for checking scale quality
bae
parents:
diff changeset
   185
        } catch (IOException ex) {
7410b6bd0b77 8000176: Need automated test for checking scale quality
bae
parents:
diff changeset
   186
        }
7410b6bd0b77 8000176: Need automated test for checking scale quality
bae
parents:
diff changeset
   187
    }
7410b6bd0b77 8000176: Need automated test for checking scale quality
bae
parents:
diff changeset
   188
7410b6bd0b77 8000176: Need automated test for checking scale quality
bae
parents:
diff changeset
   189
    public static void main(String[] argv) {
7410b6bd0b77 8000176: Need automated test for checking scale quality
bae
parents:
diff changeset
   190
        InterpolationQualityTest test = new InterpolationQualityTest();
7410b6bd0b77 8000176: Need automated test for checking scale quality
bae
parents:
diff changeset
   191
        test.test();
7410b6bd0b77 8000176: Need automated test for checking scale quality
bae
parents:
diff changeset
   192
    }
7410b6bd0b77 8000176: Need automated test for checking scale quality
bae
parents:
diff changeset
   193
}