You are viewing a plain text version of this content. The canonical link for it is here.
Posted to fop-commits@xmlgraphics.apache.org by je...@apache.org on 2007/12/11 15:17:34 UTC

svn commit: r603250 - /xmlgraphics/fop/branches/Temp_ImagePackageRedesign/src/java/org/apache/fop/render/pdf/ImageRenderedAdapter.java

Author: jeremias
Date: Tue Dec 11 06:17:32 2007
New Revision: 603250

URL: http://svn.apache.org/viewvc?rev=603250&view=rev
Log:
Removing failed experiment: raw PNG embedding didn't work out.

Modified:
    xmlgraphics/fop/branches/Temp_ImagePackageRedesign/src/java/org/apache/fop/render/pdf/ImageRenderedAdapter.java

Modified: xmlgraphics/fop/branches/Temp_ImagePackageRedesign/src/java/org/apache/fop/render/pdf/ImageRenderedAdapter.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/branches/Temp_ImagePackageRedesign/src/java/org/apache/fop/render/pdf/ImageRenderedAdapter.java?rev=603250&r1=603249&r2=603250&view=diff
==============================================================================
--- xmlgraphics/fop/branches/Temp_ImagePackageRedesign/src/java/org/apache/fop/render/pdf/ImageRenderedAdapter.java (original)
+++ xmlgraphics/fop/branches/Temp_ImagePackageRedesign/src/java/org/apache/fop/render/pdf/ImageRenderedAdapter.java Tue Dec 11 06:17:32 2007
@@ -21,29 +21,22 @@
 import java.awt.color.ColorSpace;
 import java.awt.image.ColorModel;
 import java.awt.image.IndexColorModel;
-import java.awt.image.Raster;
 import java.awt.image.RenderedImage;
 import java.io.IOException;
 import java.io.OutputStream;
-import java.util.zip.Deflater;
-import java.util.zip.DeflaterOutputStream;
 
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
-import org.apache.xmlgraphics.image.codec.png.PNGEncodeParam;
-import org.apache.xmlgraphics.image.codec.png.PNGImageEncoder;
 import org.apache.xmlgraphics.ps.ImageEncodingHelper;
 
 import org.apache.fop.image2.impl.ImageRendered;
 import org.apache.fop.pdf.AlphaRasterImage;
-import org.apache.fop.pdf.FlateFilter;
 import org.apache.fop.pdf.PDFArray;
 import org.apache.fop.pdf.PDFColor;
 import org.apache.fop.pdf.PDFDeviceColorSpace;
 import org.apache.fop.pdf.PDFDictionary;
 import org.apache.fop.pdf.PDFDocument;
 import org.apache.fop.pdf.PDFFilter;
-import org.apache.fop.pdf.PDFFilterException;
 import org.apache.fop.pdf.PDFFilterList;
 import org.apache.fop.pdf.PDFName;
 import org.apache.fop.pdf.PDFReference;
@@ -62,7 +55,6 @@
     private PDFFilter pdfFilter = null;
     private String maskRef;
     private PDFReference softMask;
-    private boolean usePredictors = false;
 
     /**
      * Creates a new PDFImage from an Image instance.
@@ -96,22 +88,6 @@
         RenderedImage ri = getImage().getRenderedImage();
         ColorModel cm = getEffectiveColorModel();
 
-        if (usePredictors) {
-            //Experiment hasn't worked, yet, so it's disabled
-            FlateFilter flate;
-            try {
-                flate = new FlateFilter();
-                flate.setApplied(true);
-                flate.setPredictor(FlateFilter.PREDICTION_PNG_OPT);
-                flate.setColors(cm.getNumComponents());
-                flate.setColumns(ri.getWidth());
-                flate.setBitsPerComponent(getBitsPerComponent());
-            } catch (PDFFilterException e) {
-                throw new RuntimeException("Unexpected bug while configuring FlateFilter", e);
-            }
-            this.pdfFilter = flate;
-        }
-
         super.setup(doc);
         
         //Handle transparency mask if applicable
@@ -123,7 +99,6 @@
             
             AlphaRasterImage alphaImage = new AlphaRasterImage("Mask:" + getKey(), ri);
             this.softMask = doc.addImage(null, alphaImage).makeReference();
-
         }
     }
 
@@ -172,12 +147,6 @@
                     i < ((IndexColorModel) cm).getMapSize();
                     i++) {
                 if ((alphas[i] & 0xFF) == 0) {
-                    /*
-                    Color transparentColor = new Color(
-                            (int)(reds[i] & 0xFF),
-                            (int)(greens[i] & 0xFF),
-                            (int)(blues[i] & 0xFF));
-                    */
                     return new Integer(i);
                 }
             }
@@ -223,14 +192,7 @@
     
     /** {@inheritDoc} */
     public void outputContents(OutputStream out) throws IOException {
-        if (usePredictors) {
-            PNGEncodeParam param = PNGEncodeParam.getDefaultEncodeParam(
-                    getImage().getRenderedImage());
-            EmbeddedPNGEncoder encoder = new EmbeddedPNGEncoder(out, param);
-            encoder.encode(getImage().getRenderedImage());
-        } else {
-            encodingHelper.encode(out);
-        }
+        encodingHelper.encode(out);
     }
 
     private static final int MAX_HIVAL = 255;
@@ -302,58 +264,7 @@
     
     /** {@inheritDoc} */
     public String getFilterHint() {
-        if (usePredictors) {
-            return PDFFilterList.PRECOMPRESSED_FILTER;
-        } else {
-            return PDFFilterList.IMAGE_FILTER;
-        }
-    }
-
-    private static class EmbeddedPNGEncoder extends PNGImageEncoder {
-
-        public EmbeddedPNGEncoder(OutputStream output, PNGEncodeParam param) {
-            super(output, param);
-        }
-        
-        public void encode(RenderedImage image) throws IOException {
-            prepareEncoding(image);
-            
-            DeflaterOutputStream dos
-                = new DeflaterOutputStream(getOutputStream(),
-                        new Deflater(Deflater.DEFAULT_COMPRESSION));
-
-            // Future work - don't convert entire image to a Raster It
-            // might seem that you could just call image.getData() but
-            // 'BufferedImage.subImage' doesn't appear to set the Width
-            // and height properly of the Child Raster, so the Raster
-            // you get back here appears larger than it should.
-            // This solves that problem by bounding the raster to the
-            // image's bounds...
-            /*
-            Raster ras = image.getData(new Rectangle(image.getMinX(), 
-                                                     image.getMinY(),
-                                                     image.getWidth(),
-                                                     image.getHeight()));
-            */
-            Raster ras = image.getData();
-
-            boolean skipAlpha = image.getColorModel().hasAlpha();
-            if (skipAlpha) {
-                int numBands = ras.getNumBands() - 1;
-                int[] bandList = new int[numBands];
-                for (int i = 0; i < numBands; i++) {
-                    bandList[i] = i;
-                }
-                ras = ras.createChild(0, 0,
-                                      ras.getWidth(), ras.getHeight(),
-                                      0, 0,
-                                      bandList);
-            }
-
-            encodePass(dos, ras, 0, 0, 1, 1);
-
-            dos.finish();
-        }
+        return PDFFilterList.IMAGE_FILTER;
     }
 
 }



---------------------------------------------------------------------
To unsubscribe, e-mail: fop-commits-unsubscribe@xmlgraphics.apache.org
For additional commands, e-mail: fop-commits-help@xmlgraphics.apache.org