Reviewers: cromwellian,
Please review this at http://gwt-code-reviews.appspot.com/1663803/
Affected files:
M user/src/com/google/gwt/resources/rg/ImageBundleBuilder.java
Index: user/src/com/google/gwt/resources/rg/ImageBundleBuilder.java
diff --git a/user/src/com/google/gwt/resources/rg/ImageBundleBuilder.java
b/user/src/com/google/gwt/resources/rg/ImageBundleBuilder.java
index
429acfa7ed20a7ed9e98490794bb7c29ba31929e..576951d7a4be62ea2efe3515611191443a821cbe
100644
--- a/user/src/com/google/gwt/resources/rg/ImageBundleBuilder.java
+++ b/user/src/com/google/gwt/resources/rg/ImageBundleBuilder.java
@@ -24,6 +24,7 @@ import
com.google.gwt.dev.util.log.speedtracer.SpeedTracerLogger;
import org.w3c.dom.Node;
import java.awt.Graphics2D;
+import java.awt.RenderingHints;
import java.awt.geom.AffineTransform;
import java.awt.image.BufferedImage;
import java.io.ByteArrayOutputStream;
@@ -538,6 +539,8 @@ class ImageBundleBuilder {
Graphics2D g2d = bundledImage.createGraphics();
createGraphicsEvent.end();
+ setBetterRenderingQuality(g2d);
+
g2d.drawImage(rect.getImage(), rect.transform(), null);
g2d.dispose();
@@ -593,6 +596,13 @@ class ImageBundleBuilder {
return b / gcd(a, b) * a;
}
+ private static void setBetterRenderingQuality(Graphics2D g2d) {
+ g2d.setRenderingHint(RenderingHints.KEY_INTERPOLATION,
+ RenderingHints.VALUE_INTERPOLATION_BILINEAR);
+ g2d.setRenderingHint(RenderingHints.KEY_ALPHA_INTERPOLATION,
+ RenderingHints.VALUE_ALPHA_INTERPOLATION_QUALITY);
+ }
+
private final Map<String, ImageRect> imageNameToImageRectMap = new
HashMap<String, ImageRect>();
public ImageBundleBuilder() {
@@ -818,6 +828,9 @@ class ImageBundleBuilder {
SpeedTracerLogger.Event graphicsEvent =
SpeedTracerLogger.start(CompilerEventType.GRAPHICS_INIT,
"java.awt.headless", System.getProperty("java.awt.headless"));
Graphics2D g2d = bundledImage.createGraphics();
+
+ setBetterRenderingQuality(g2d);
+
graphicsEvent.end();
for (ImageRect imageRect : imageRects) {
--
http://groups.google.com/group/Google-Web-Toolkit-Contributors