xmlgraphics-general mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From bugzi...@apache.org
Subject DO NOT REPLY [Bug 51465] New: Significant slowdown in PNG and TIFF processing with xmlgraphics 1.4
Date Sat, 02 Jul 2011 12:05:23 GMT
https://issues.apache.org/bugzilla/show_bug.cgi?id=51465

             Bug #: 51465
           Summary: Significant slowdown in PNG and TIFF processing with
                    xmlgraphics 1.4
           Product: XMLGraphicsCommons
           Version: 1.4
          Platform: PC
            Status: NEW
          Severity: regression
          Priority: P2
         Component: Image codecs
        AssignedTo: general@xmlgraphics.apache.org
        ReportedBy: patches@portaildulibre.fr
    Classification: Unclassified


Created attachment 27243
  --> https://issues.apache.org/bugzilla/attachment.cgi?id=27243
Profiler

Hello, 
I’m using fop 1.0 (xmlgraphics 1.4) to generate PDF, I noticed that PDF
generation with PNG or TIF image is 7 times longer. 
The problem doesn't appear in the version 1.3 of xmlgraphics.


The problem seems to come from color model associated with the image.
* if is_sRGB_stdStale = true then getRBG method is very fast
* if is_sRGB_stdStale = false then getRBG  is slow because the treatment is
delegated to ICC_ColorSpace.toRGB

The color model is correct, but it is modified by the class
org.apache.xmlgraphics.image.loader.impl.imageio.ImageLoaderImageIO
by the following code : 
            if (providerIgnoresICC && cm instanceof ComponentColorModel) {
                // Apply ICC Profile to Image by creating a new image with a
new color model.
                ICC_Profile iccProf = tryToExctractICCProfile(iiometa);
                if (iccProf != null) {
                    ColorModel cm2 = new ComponentColorModel(
                            new ICC_ColorSpace(iccProf), cm.hasAlpha(), cm
                                    .isAlphaPremultiplied(), cm
                                    .getTransparency(), cm.getTransferType());
                    WritableRaster wr = Raster.createWritableRaster(imageData
                            .getSampleModel(), null);
                    imageData.copyData(wr);
                    BufferedImage bi = new BufferedImage(cm2, wr, cm2
                            .isAlphaPremultiplied(), null);
                    imageData = bi;
                    cm = cm2;

I removed this code and it works fine now, but it's dirty. What's the impact ?

Until a fix, best regards.

-- 
Configure bugmail: https://issues.apache.org/bugzilla/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.
---------------------------------------------------------------------
To unsubscribe, e-mail: general-unsubscribe@xmlgraphics.apache.org
For additional commands, e-mail: general-help@xmlgraphics.apache.org


Mime
View raw message