You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pdfbox.apache.org by le...@apache.org on 2013/11/17 18:27:41 UTC
svn commit: r1542768 - in
/pdfbox/branches/1.8/pdfbox/src/main/java/org/apache/pdfbox:
filter/JBIG2Filter.java pdfviewer/PageDrawer.java pdmodel/PDPage.java
pdmodel/PDPageable.java pdmodel/graphics/xobject/PDXObjectImage.java
Author: lehmi
Date: Sun Nov 17 17:27:41 2013
New Revision: 1542768
URL: http://svn.apache.org/r1542768
Log:
PDFBOX-1687: added some graphics.dispose calls and a new dispose method in PageDrawer to release used resources
Modified:
pdfbox/branches/1.8/pdfbox/src/main/java/org/apache/pdfbox/filter/JBIG2Filter.java
pdfbox/branches/1.8/pdfbox/src/main/java/org/apache/pdfbox/pdfviewer/PageDrawer.java
pdfbox/branches/1.8/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/PDPage.java
pdfbox/branches/1.8/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/PDPageable.java
pdfbox/branches/1.8/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/xobject/PDXObjectImage.java
Modified: pdfbox/branches/1.8/pdfbox/src/main/java/org/apache/pdfbox/filter/JBIG2Filter.java
URL: http://svn.apache.org/viewvc/pdfbox/branches/1.8/pdfbox/src/main/java/org/apache/pdfbox/filter/JBIG2Filter.java?rev=1542768&r1=1542767&r2=1542768&view=diff
==============================================================================
--- pdfbox/branches/1.8/pdfbox/src/main/java/org/apache/pdfbox/filter/JBIG2Filter.java (original)
+++ pdfbox/branches/1.8/pdfbox/src/main/java/org/apache/pdfbox/filter/JBIG2Filter.java Sun Nov 17 17:27:41 2013
@@ -16,6 +16,7 @@
*/
package org.apache.pdfbox.filter;
+import java.awt.Graphics;
import java.awt.image.BufferedImage;
import java.awt.image.DataBuffer;
import java.awt.image.DataBufferByte;
@@ -98,7 +99,9 @@ public class JBIG2Filter implements Filt
}
BufferedImage packedImage =
new BufferedImage(bi.getWidth(), bi.getHeight(), BufferedImage.TYPE_BYTE_BINARY);
- packedImage.getGraphics().drawImage(bi, 0, 0, null);
+ Graphics graphics = packedImage.getGraphics();
+ graphics.drawImage(bi, 0, 0, null);
+ graphics.dispose();
bi = packedImage;
}
DataBuffer dBuf = bi.getData().getDataBuffer();
Modified: pdfbox/branches/1.8/pdfbox/src/main/java/org/apache/pdfbox/pdfviewer/PageDrawer.java
URL: http://svn.apache.org/viewvc/pdfbox/branches/1.8/pdfbox/src/main/java/org/apache/pdfbox/pdfviewer/PageDrawer.java?rev=1542768&r1=1542767&r2=1542768&view=diff
==============================================================================
--- pdfbox/branches/1.8/pdfbox/src/main/java/org/apache/pdfbox/pdfviewer/PageDrawer.java (original)
+++ pdfbox/branches/1.8/pdfbox/src/main/java/org/apache/pdfbox/pdfviewer/PageDrawer.java Sun Nov 17 17:27:41 2013
@@ -163,6 +163,17 @@ public class PageDrawer extends PDFStrea
}
/**
+ * Remove all cached resources.
+ */
+ public void dispose()
+ {
+ graphics = null;
+ linePath = null;
+ page = null;
+ pageSize = null;
+ }
+
+ /**
* You should override this method if you want to perform an action when a
* text is being processed.
*
Modified: pdfbox/branches/1.8/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/PDPage.java
URL: http://svn.apache.org/viewvc/pdfbox/branches/1.8/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/PDPage.java?rev=1542768&r1=1542767&r2=1542768&view=diff
==============================================================================
--- pdfbox/branches/1.8/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/PDPage.java (original)
+++ pdfbox/branches/1.8/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/PDPage.java Sun Nov 17 17:27:41 2013
@@ -799,7 +799,8 @@ public class PDPage implements COSObject
graphics.scale( scaling, scaling );
PageDrawer drawer = new PageDrawer();
drawer.drawPage( graphics, this, pageDimension );
-
+ drawer.dispose();
+ graphics.dispose();
return retval;
}
@@ -882,6 +883,7 @@ public class PDPage implements COSObject
PageDrawer drawer = new PageDrawer();
PDRectangle cropBox = findCropBox();
drawer.drawPage( graphics, this, cropBox.createDimension() );
+ drawer.dispose();
return PAGE_EXISTS;
}
catch( IOException io )
Modified: pdfbox/branches/1.8/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/PDPageable.java
URL: http://svn.apache.org/viewvc/pdfbox/branches/1.8/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/PDPageable.java?rev=1542768&r1=1542767&r2=1542768&view=diff
==============================================================================
--- pdfbox/branches/1.8/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/PDPageable.java (original)
+++ pdfbox/branches/1.8/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/PDPageable.java Sun Nov 17 17:27:41 2013
@@ -195,6 +195,7 @@ public class PDPageable implements Pagea
PDRectangle cropBox = page.findCropBox();
PageDrawer drawer = new PageDrawer();
drawer.drawPage( graphics, page, cropBox.createDimension() );
+ drawer.dispose();
return PAGE_EXISTS;
}
catch( IOException io )
Modified: pdfbox/branches/1.8/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/xobject/PDXObjectImage.java
URL: http://svn.apache.org/viewvc/pdfbox/branches/1.8/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/xobject/PDXObjectImage.java?rev=1542768&r1=1542767&r2=1542768&view=diff
==============================================================================
--- pdfbox/branches/1.8/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/xobject/PDXObjectImage.java (original)
+++ pdfbox/branches/1.8/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/xobject/PDXObjectImage.java Sun Nov 17 17:27:41 2013
@@ -183,6 +183,7 @@ public abstract class PDXObjectImage ext
// TODO DecodeArray == [1,0]
graphics.setComposite(AlphaComposite.DstIn);
graphics.drawImage(baseImage, null, 0, 0);
+ graphics.dispose();
return stencilMask;
}
@@ -205,6 +206,7 @@ public abstract class PDXObjectImage ext
graphics.drawImage(baseImage, 0, 0, maskImage.getWidth(), maskImage.getHeight(), 0, 0, baseImage.getWidth(), baseImage.getHeight(), null);
graphics.setComposite(AlphaComposite.DstIn);
graphics.drawImage(maskImage, null, 0, 0);
+ graphics.dispose();
return newImage;
}
else