You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pdfbox.apache.org by ju...@apache.org on 2008/10/09 23:09:35 UTC

svn commit: r703260 - in /incubator/pdfbox/trunk: external/jai_codec.jar external/jai_core.jar src/main/java/org/apache/pdfbox/pdmodel/PDPage.java src/main/java/org/apache/pdfbox/pdmodel/graphics/xobject/PDCcitt.java

Author: jukka
Date: Thu Oct  9 14:09:35 2008
New Revision: 703260

URL: http://svn.apache.org/viewvc?rev=703260&view=rev
Log:
PDFBOX-381: Remove direct JAI dependency

Removed:
    incubator/pdfbox/trunk/external/jai_codec.jar
    incubator/pdfbox/trunk/external/jai_core.jar
Modified:
    incubator/pdfbox/trunk/src/main/java/org/apache/pdfbox/pdmodel/PDPage.java
    incubator/pdfbox/trunk/src/main/java/org/apache/pdfbox/pdmodel/graphics/xobject/PDCcitt.java

Modified: incubator/pdfbox/trunk/src/main/java/org/apache/pdfbox/pdmodel/PDPage.java
URL: http://svn.apache.org/viewvc/incubator/pdfbox/trunk/src/main/java/org/apache/pdfbox/pdmodel/PDPage.java?rev=703260&r1=703259&r2=703260&view=diff
==============================================================================
--- incubator/pdfbox/trunk/src/main/java/org/apache/pdfbox/pdmodel/PDPage.java (original)
+++ incubator/pdfbox/trunk/src/main/java/org/apache/pdfbox/pdmodel/PDPage.java Thu Oct  9 14:09:35 2008
@@ -40,8 +40,10 @@
 import java.awt.Dimension;
 import java.awt.Graphics;
 import java.awt.Graphics2D;
+import java.awt.geom.AffineTransform;
+import java.awt.image.AffineTransformOp;
 import java.awt.image.BufferedImage;
-import java.awt.image.renderable.ParameterBlock;
+import java.awt.image.ImagingOpException;
 import java.awt.print.PageFormat;
 import java.awt.print.Printable;
 import java.awt.print.PrinterException;
@@ -52,10 +54,7 @@
 import java.util.Calendar;
 import java.util.GregorianCalendar;
 import java.util.List;
-
-import javax.media.jai.Interpolation;
-import javax.media.jai.JAI;
-import javax.media.jai.PlanarImage;
+import java.util.logging.Level;
 
 /**
  * This represents a single page in a PDF document.
@@ -669,21 +668,17 @@
         PageDrawer drawer = new PageDrawer();
         drawer.drawPage( graphics, this, pageDimension );
 
-	    try{
+        try{
             int rotation = findRotation();
             if (rotation == 90 || rotation == 270) {
-                ParameterBlock pb = new ParameterBlock();
-                pb.addSource(retval);               // The source image
-                pb.add(0.0F);                       // The x origin
-                pb.add(0.0F);                       // The y origin
-                pb.add((float)(rotation * Math.PI) / 180);                   // The rotation angle
-                pb.add(Interpolation.getInstance(Interpolation.INTERP_BILINEAR)); // The interpolation
-                // Create the rotate operation
-                retval = PlanarImage.wrapRenderedImage(JAI.create("Rotate", pb, null)).getAsBufferedImage();
+                AffineTransformOp transform = new AffineTransformOp(
+                        AffineTransform.getRotateInstance(Math.toRadians(rotation)),
+                        AffineTransformOp.TYPE_BILINEAR);
+                retval = transform.filter(retval, null);
             }
-		}catch(Throwable T){
-			logger().severe(T.getMessage() + "\n at\n" + FullStackTrace(T));
-		}
+        } catch (ImagingOpException e){
+            logger().log(Level.WARNING, "Unable to rotate page image", e);
+        }
 
         return retval;
     }

Modified: incubator/pdfbox/trunk/src/main/java/org/apache/pdfbox/pdmodel/graphics/xobject/PDCcitt.java
URL: http://svn.apache.org/viewvc/incubator/pdfbox/trunk/src/main/java/org/apache/pdfbox/pdmodel/graphics/xobject/PDCcitt.java?rev=703260&r1=703259&r2=703260&view=diff
==============================================================================
--- incubator/pdfbox/trunk/src/main/java/org/apache/pdfbox/pdmodel/graphics/xobject/PDCcitt.java (original)
+++ incubator/pdfbox/trunk/src/main/java/org/apache/pdfbox/pdmodel/graphics/xobject/PDCcitt.java Thu Oct  9 14:09:35 2008
@@ -24,8 +24,7 @@
 import java.util.ArrayList;
 import java.util.List;
 
-import javax.media.jai.JAI;
-import javax.media.jai.PlanarImage;
+import javax.imageio.ImageIO;
 
 import org.apache.pdfbox.cos.COSArray;
 import org.apache.pdfbox.cos.COSBase;
@@ -37,9 +36,6 @@
 import org.apache.pdfbox.pdmodel.common.PDStream;
 import org.apache.pdfbox.pdmodel.graphics.color.PDDeviceGray;
 
-import com.sun.media.jai.codec.ImageCodec;
-import com.sun.media.jai.codec.ImageDecoder;
-
 /**
  * An image class for CCITT Fax.
  *
@@ -106,11 +102,14 @@
      */
     public BufferedImage getRGBImage() throws IOException
     {
-        ImageDecoder dec = ImageCodec.createImageDecoder("tiff",
-        new TiffWrapper(getPDStream().getPartiallyFilteredStream( FAX_FILTERS ),getCOSStream()), null);
-
-        return ((PlanarImage)JAI.create("null", dec.decodeAsRenderedImage())).getAsBufferedImage();
-
+        InputStream tiff = new TiffWrapper(
+                getPDStream().getPartiallyFilteredStream( FAX_FILTERS ),
+                getCOSStream());
+        try {
+            return ImageIO.read(tiff);
+        } finally {
+            tiff.close();
+        }
     }
 
     /**