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]

Reply via email to