/*
* Copyright ( c ) 2011 , 2013 , 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 .
*
* 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 .
*/
/*
* @ test % W % % E %
* @ bug 7016495
* @ summary Test tiny scales of BufferedImage
*/
import java.awt.*;
import java.awt.geom.*;
import java.awt.image.*;
public class TinyScale {
static double tinyscales[] = {
1 E-0 ,
1 E-1 ,
1 E-2 ,
1 E-3 ,
1 E-4 ,
1 E-5 ,
1 E-6 ,
1 E-7 ,
1 E-8 ,
1 E-9 ,
1 E-10 ,
1 E-11 ,
1 E-12 ,
1 E-13 ,
1 E-14 ,
1 E-15 ,
1 E-16 ,
1 E-17 ,
1 E-18 ,
1 E-19 ,
1 E-20 ,
1 E-21 ,
1 E-22 ,
1 E-23 ,
1 E-24 ,
1 E-25 ,
1 E-26 ,
1 E-27 ,
1 E-28 ,
1 E-29 ,
};
static void test(BufferedImage rendImg, BufferedImage drawImg, double s) {
Graphics2D g = drawImg.createGraphics();
g.transform(new AffineTransform(s, 0 .0 , -1 .0 , 1 .0 , 0 .0 , 0 .0 ));
g.drawImage(rendImg,
-rendImg.getWidth() / 2 ,
-rendImg.getHeight() / 2 ,
null );
g.drawImage(rendImg, 0 , 0 , null );
g.dispose();
}
public static void main(String[] args) {
BufferedImage rendImg =
new BufferedImage(100 , 100 , BufferedImage.TYPE_3BYTE_BGR);
BufferedImage drawImg =
new BufferedImage(100 , 100 , BufferedImage.TYPE_INT_ARGB);
for (double s: tinyscales) {
test(rendImg, drawImg, s);
for (int i = 0 ; args.length > 0 && i < 10 ; i++) {
test(rendImg, drawImg, Math.random()*s);
}
}
}
}
Messung V0.5 in Prozent C=98 H=82 G=90
¤ Dauer der Verarbeitung: 0.3 Sekunden
¤
*© Formatika GbR, Deutschland