jeremias 2005/06/09 05:45:53
Modified: src/java/org/apache/fop/render/java2d Java2DRenderer.java
Log:
General anti-aliasing hint added.
Bitmaps generated by the Java2D renderer take the resolution on the user
agent into account.
Revision Changes Path
1.2 +14 -4
xml-fop/src/java/org/apache/fop/render/java2d/Java2DRenderer.java
Index: Java2DRenderer.java
===================================================================
RCS file:
/home/cvs/xml-fop/src/java/org/apache/fop/render/java2d/Java2DRenderer.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- Java2DRenderer.java 9 Jun 2005 08:49:26 -0000 1.1
+++ Java2DRenderer.java 9 Jun 2005 12:45:53 -0000 1.2
@@ -35,6 +35,7 @@
import java.awt.image.PixelInterleavedSampleModel;
import java.awt.image.Raster;
import java.awt.image.SampleModel;
+import java.awt.image.SinglePixelPackedSampleModel;
import java.awt.image.WritableRaster;
import java.io.IOException;
import java.io.OutputStream;
@@ -268,15 +269,24 @@
+ " (pageWidth " + pageWidth + ", pageHeight "
+ pageHeight + ")");
+ double scaleX = scaleFactor
+ * FOUserAgent.DEFAULT_PX2MM /
userAgent.getPixelUnitToMillimeter();
+ double scaleY = scaleFactor
+ * FOUserAgent.DEFAULT_PX2MM /
userAgent.getPixelUnitToMillimeter();
+ int bitmapWidth = (int) ((pageWidth * scaleX) + 0.5);
+ int bitmapHeight = (int) ((pageHeight * scaleY) + 0.5);
+
+
BufferedImage currentPageImage = new BufferedImage(
- (int) ((pageWidth * scaleFactor)),
- (int) ((pageHeight * scaleFactor)),
BufferedImage.TYPE_INT_RGB);
+ bitmapWidth, bitmapHeight, BufferedImage.TYPE_INT_ARGB);
// FIXME TYPE_BYTE_BINARY ?
Graphics2D graphics = currentPageImage.createGraphics();
graphics.setRenderingHint(RenderingHints.KEY_FRACTIONALMETRICS,
RenderingHints.VALUE_FRACTIONALMETRICS_ON);
if (antialiasing) {
+ graphics.setRenderingHint(RenderingHints.KEY_ANTIALIASING,
+ RenderingHints.VALUE_ANTIALIAS_ON);
graphics.setRenderingHint(RenderingHints.KEY_TEXT_ANTIALIASING,
RenderingHints.VALUE_TEXT_ANTIALIAS_ON);
}
@@ -287,7 +297,7 @@
// transform page based on scale factor supplied
AffineTransform at = graphics.getTransform();
- at.scale(scaleFactor, scaleFactor);
+ at.scale(scaleX, scaleY);
graphics.setTransform(at);
// draw page frame
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]