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 22:13:24 UTC
svn commit: r603358 - in
/xmlgraphics/fop/branches/Temp_ImagePackageRedesign/src/java/org/apache/fop:
area/ fo/properties/ layoutmgr/ render/ render/pcl/
Author: jeremias
Date: Tue Dec 11 13:13:22 2007
New Revision: 603358
URL: http://svn.apache.org/viewvc?rev=603358&view=rev
Log:
Switched background images to new image package.
Modified:
xmlgraphics/fop/branches/Temp_ImagePackageRedesign/src/java/org/apache/fop/area/AreaTreeParser.java
xmlgraphics/fop/branches/Temp_ImagePackageRedesign/src/java/org/apache/fop/area/Trait.java
xmlgraphics/fop/branches/Temp_ImagePackageRedesign/src/java/org/apache/fop/fo/properties/CommonBorderPaddingBackground.java
xmlgraphics/fop/branches/Temp_ImagePackageRedesign/src/java/org/apache/fop/layoutmgr/TraitSetter.java
xmlgraphics/fop/branches/Temp_ImagePackageRedesign/src/java/org/apache/fop/render/AbstractPathOrientedRenderer.java
xmlgraphics/fop/branches/Temp_ImagePackageRedesign/src/java/org/apache/fop/render/pcl/PCLRenderer.java
Modified: xmlgraphics/fop/branches/Temp_ImagePackageRedesign/src/java/org/apache/fop/area/AreaTreeParser.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/branches/Temp_ImagePackageRedesign/src/java/org/apache/fop/area/AreaTreeParser.java?rev=603358&r1=603357&r2=603358&view=diff
==============================================================================
--- xmlgraphics/fop/branches/Temp_ImagePackageRedesign/src/java/org/apache/fop/area/AreaTreeParser.java (original)
+++ xmlgraphics/fop/branches/Temp_ImagePackageRedesign/src/java/org/apache/fop/area/AreaTreeParser.java Tue Dec 11 13:13:22 2007
@@ -36,16 +36,25 @@
import javax.xml.transform.sax.SAXTransformerFactory;
import javax.xml.transform.sax.TransformerHandler;
+import org.w3c.dom.DOMImplementation;
+import org.w3c.dom.Document;
+
+import org.xml.sax.Attributes;
+import org.xml.sax.ContentHandler;
+import org.xml.sax.SAXException;
+import org.xml.sax.helpers.DefaultHandler;
+
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
+
import org.apache.fop.apps.FOUserAgent;
-import org.apache.fop.area.Trait.InternalLink;
import org.apache.fop.area.Trait.Background;
-import org.apache.fop.area.inline.InlineArea;
+import org.apache.fop.area.Trait.InternalLink;
import org.apache.fop.area.inline.AbstractTextArea;
import org.apache.fop.area.inline.Character;
import org.apache.fop.area.inline.ForeignObject;
import org.apache.fop.area.inline.Image;
+import org.apache.fop.area.inline.InlineArea;
import org.apache.fop.area.inline.InlineBlockParent;
import org.apache.fop.area.inline.InlineParent;
import org.apache.fop.area.inline.Leader;
@@ -60,20 +69,15 @@
import org.apache.fop.fo.extensions.ExtensionAttachment;
import org.apache.fop.fonts.Font;
import org.apache.fop.fonts.FontInfo;
-import org.apache.fop.image.FopImage;
-import org.apache.fop.image.ImageFactory;
+import org.apache.fop.image2.ImageInfo;
+import org.apache.fop.image2.ImageManager;
+import org.apache.fop.image2.ImageSessionContext;
import org.apache.fop.traits.BorderProps;
import org.apache.fop.util.ColorUtil;
import org.apache.fop.util.ContentHandlerFactory;
import org.apache.fop.util.ContentHandlerFactoryRegistry;
import org.apache.fop.util.DefaultErrorListener;
import org.apache.fop.util.QName;
-import org.w3c.dom.DOMImplementation;
-import org.w3c.dom.Document;
-import org.xml.sax.Attributes;
-import org.xml.sax.ContentHandler;
-import org.xml.sax.SAXException;
-import org.xml.sax.helpers.DefaultHandler;
/**
* This is a parser for the area tree XML (intermediate format) which is used to reread an area
@@ -1024,22 +1028,19 @@
} catch (PropertyException e) {
throw new IllegalArgumentException(e.getMessage());
}
- String url = attributes.getValue("bkg-img");
- if (url != null) {
- bkg.setURL(url);
-
- ImageFactory fact = userAgent.getFactory().getImageFactory();
- FopImage img = fact.getImage(url, userAgent);
- if (img == null) {
- log.error("Background image not available: " + url);
- } else {
- // load dimensions
- if (!img.load(FopImage.DIMENSIONS)) {
- log.error("Cannot read background image dimensions: "
- + url);
- }
+ String uri = attributes.getValue("bkg-img");
+ if (uri != null) {
+ bkg.setURL(uri);
+
+ try {
+ ImageManager manager = userAgent.getFactory().getImageManager();
+ ImageSessionContext sessionContext
+ = userAgent.getImageSessionContext();
+ ImageInfo info = manager.getImageInfo(uri, sessionContext);
+ bkg.setImageInfo(info);
+ } catch (Exception e) {
+ log.error("Background image not available: " + uri, e);
}
- bkg.setFopImage(img);
String repeat = attributes.getValue("bkg-repeat");
if (repeat != null) {
Modified: xmlgraphics/fop/branches/Temp_ImagePackageRedesign/src/java/org/apache/fop/area/Trait.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/branches/Temp_ImagePackageRedesign/src/java/org/apache/fop/area/Trait.java?rev=603358&r1=603357&r2=603358&view=diff
==============================================================================
--- xmlgraphics/fop/branches/Temp_ImagePackageRedesign/src/java/org/apache/fop/area/Trait.java (original)
+++ xmlgraphics/fop/branches/Temp_ImagePackageRedesign/src/java/org/apache/fop/area/Trait.java Tue Dec 11 13:13:22 2007
@@ -24,7 +24,7 @@
import org.apache.fop.fo.Constants;
import org.apache.fop.fonts.FontTriplet;
-import org.apache.fop.image.FopImage;
+import org.apache.fop.image2.ImageInfo;
import org.apache.fop.traits.BorderProps;
import org.apache.fop.util.ColorUtil;
@@ -559,7 +559,7 @@
private String url = null;
/** The background image if any. */
- private FopImage fopimage = null;
+ private ImageInfo imageInfo = null;
/** Background repeat enum for images. */
private int repeat;
@@ -603,11 +603,11 @@
}
/**
- * Returns the FopImage representing the background image
+ * Returns the ImageInfo object representing the background image
* @return the background image, null if n/a
*/
- public FopImage getFopImage() {
- return fopimage;
+ public ImageInfo getImageInfo() {
+ return imageInfo;
}
/**
@@ -659,11 +659,11 @@
}
/**
- * Sets the FopImage to use as the background image.
- * @param fopimage The FopImage to use
+ * Sets the ImageInfo of the image to use as the background image.
+ * @param info The background image's info object
*/
- public void setFopImage(FopImage fopimage) {
- this.fopimage = fopimage;
+ public void setImageInfo(ImageInfo info) {
+ this.imageInfo = info;
}
/**
Modified: xmlgraphics/fop/branches/Temp_ImagePackageRedesign/src/java/org/apache/fop/fo/properties/CommonBorderPaddingBackground.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/branches/Temp_ImagePackageRedesign/src/java/org/apache/fop/fo/properties/CommonBorderPaddingBackground.java?rev=603358&r1=603357&r2=603358&view=diff
==============================================================================
--- xmlgraphics/fop/branches/Temp_ImagePackageRedesign/src/java/org/apache/fop/fo/properties/CommonBorderPaddingBackground.java (original)
+++ xmlgraphics/fop/branches/Temp_ImagePackageRedesign/src/java/org/apache/fop/fo/properties/CommonBorderPaddingBackground.java Tue Dec 11 13:13:22 2007
@@ -27,8 +27,10 @@
import org.apache.fop.fo.Constants;
import org.apache.fop.fo.PropertyList;
import org.apache.fop.fo.expr.PropertyException;
-import org.apache.fop.image.FopImage;
import org.apache.fop.image.ImageFactory;
+import org.apache.fop.image2.ImageInfo;
+import org.apache.fop.image2.ImageManager;
+import org.apache.fop.image2.ImageSessionContext;
/**
* Stores all common border and padding properties.
@@ -66,7 +68,7 @@
public Length backgroundPositionVertical;
- private FopImage fopimage;
+ private ImageInfo backgroundImageInfo;
/** the "before" edge */
@@ -160,18 +162,16 @@
Constants.PR_BACKGROUND_POSITION_VERTICAL).getLength();
//Additional processing: preload image
- String url = ImageFactory.getURL(backgroundImage);
+ String uri = ImageFactory.getURL(backgroundImage);
FOUserAgent userAgent = pList.getFObj().getUserAgent();
- ImageFactory fact = userAgent.getFactory().getImageFactory();
- fopimage = fact.getImage(url, userAgent);
- if (fopimage == null) {
- Property.log.error("Background image not available: " + backgroundImage);
- } else {
- // load dimensions
- if (!fopimage.load(FopImage.DIMENSIONS)) {
- Property.log.error("Cannot read background image dimensions: "
- + backgroundImage);
- }
+ ImageManager manager = userAgent.getFactory().getImageManager();
+ ImageSessionContext sessionContext = userAgent.getImageSessionContext();
+ ImageInfo info;
+ try {
+ info = manager.getImageInfo(uri, sessionContext);
+ this.backgroundImageInfo = info;
+ } catch (Exception e) {
+ Property.log.error("Background image not available: " + uri);
}
//TODO Report to caller so he can decide to throw an exception
}
@@ -239,11 +239,11 @@
}
/**
- * @return the background image as a preloaded FopImage, null if there is
+ * @return the background image info object, null if there is
* no background image.
*/
- public FopImage getFopImage() {
- return this.fopimage;
+ public ImageInfo getImageInfo() {
+ return this.backgroundImageInfo;
}
/**
@@ -379,7 +379,7 @@
* @return true if there is any kind of background to be painted
*/
public boolean hasBackground() {
- return ((backgroundColor != null || getFopImage() != null));
+ return ((backgroundColor != null || getImageInfo() != null));
}
/** @return true if border is non-zero. */
Modified: xmlgraphics/fop/branches/Temp_ImagePackageRedesign/src/java/org/apache/fop/layoutmgr/TraitSetter.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/branches/Temp_ImagePackageRedesign/src/java/org/apache/fop/layoutmgr/TraitSetter.java?rev=603358&r1=603357&r2=603358&view=diff
==============================================================================
--- xmlgraphics/fop/branches/Temp_ImagePackageRedesign/src/java/org/apache/fop/layoutmgr/TraitSetter.java (original)
+++ xmlgraphics/fop/branches/Temp_ImagePackageRedesign/src/java/org/apache/fop/layoutmgr/TraitSetter.java Tue Dec 11 13:13:22 2007
@@ -21,20 +21,19 @@
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
-import org.apache.fop.traits.BorderProps;
-import org.apache.fop.traits.MinOptMax;
+
import org.apache.fop.area.Area;
import org.apache.fop.area.Trait;
import org.apache.fop.datatypes.LengthBase;
import org.apache.fop.datatypes.PercentBaseContext;
import org.apache.fop.datatypes.SimplePercentBaseContext;
import org.apache.fop.fo.Constants;
-import org.apache.fop.fo.properties.CommonMarginBlock;
import org.apache.fop.fo.properties.CommonBorderPaddingBackground;
+import org.apache.fop.fo.properties.CommonMarginBlock;
import org.apache.fop.fo.properties.CommonTextDecoration;
import org.apache.fop.fonts.Font;
-import org.apache.fop.fonts.FontInfo;
-import org.apache.fop.fonts.FontTriplet;
+import org.apache.fop.traits.BorderProps;
+import org.apache.fop.traits.MinOptMax;
/**
* This is a helper class used for setting common traits on areas.
@@ -303,9 +302,9 @@
Trait.Background back = new Trait.Background();
back.setColor(backProps.backgroundColor);
- if (backProps.getFopImage() != null) {
+ if (backProps.getImageInfo() != null) {
back.setURL(backProps.backgroundImage);
- back.setFopImage(backProps.getFopImage());
+ back.setImageInfo(backProps.getImageInfo());
back.setRepeat(backProps.backgroundRepeat);
if (backProps.backgroundPositionHorizontal != null) {
if (back.getRepeat() == Constants.EN_NOREPEAT
@@ -317,7 +316,7 @@
back.setHoriz(backProps.backgroundPositionHorizontal.getValue(
new SimplePercentBaseContext(context,
LengthBase.IMAGE_BACKGROUND_POSITION_HORIZONTAL,
- (width - back.getFopImage().getIntrinsicWidth())
+ (width - back.getImageInfo().getSize().getHeightMpt())
)
));
} else {
@@ -338,7 +337,7 @@
back.setVertical(backProps.backgroundPositionVertical.getValue(
new SimplePercentBaseContext(context,
LengthBase.IMAGE_BACKGROUND_POSITION_VERTICAL,
- (height - back.getFopImage().getIntrinsicHeight())
+ (height - back.getImageInfo().getSize().getHeightMpt())
)
));
} else {
Modified: xmlgraphics/fop/branches/Temp_ImagePackageRedesign/src/java/org/apache/fop/render/AbstractPathOrientedRenderer.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/branches/Temp_ImagePackageRedesign/src/java/org/apache/fop/render/AbstractPathOrientedRenderer.java?rev=603358&r1=603357&r2=603358&view=diff
==============================================================================
--- xmlgraphics/fop/branches/Temp_ImagePackageRedesign/src/java/org/apache/fop/render/AbstractPathOrientedRenderer.java (original)
+++ xmlgraphics/fop/branches/Temp_ImagePackageRedesign/src/java/org/apache/fop/render/AbstractPathOrientedRenderer.java Tue Dec 11 13:13:22 2007
@@ -25,6 +25,8 @@
import java.util.List;
import java.util.Map;
+import org.w3c.dom.Document;
+
import org.apache.fop.area.Area;
import org.apache.fop.area.Block;
import org.apache.fop.area.BlockViewport;
@@ -36,9 +38,8 @@
import org.apache.fop.area.inline.Viewport;
import org.apache.fop.fo.Constants;
import org.apache.fop.fonts.FontMetrics;
-import org.apache.fop.image.FopImage;
+import org.apache.fop.image2.ImageSize;
import org.apache.fop.traits.BorderProps;
-import org.w3c.dom.Document;
/**
* Abstract base class for renderers like PDF and PostScript where many painting operations
@@ -151,51 +152,47 @@
updateColor(back.getColor(), true);
fillRect(sx, sy, paddRectWidth, paddRectHeight);
}
- if (back.getFopImage() != null) {
- FopImage fopimage = back.getFopImage();
- if (fopimage != null && fopimage.load(FopImage.DIMENSIONS)) {
- saveGraphicsState();
- clipRect(sx, sy, paddRectWidth, paddRectHeight);
- int horzCount = (int)((paddRectWidth
- * 1000 / fopimage.getIntrinsicWidth()) + 1.0f);
- int vertCount = (int)((paddRectHeight
- * 1000 / fopimage.getIntrinsicHeight()) + 1.0f);
- if (back.getRepeat() == EN_NOREPEAT) {
- horzCount = 1;
- vertCount = 1;
- } else if (back.getRepeat() == EN_REPEATX) {
- vertCount = 1;
- } else if (back.getRepeat() == EN_REPEATY) {
- horzCount = 1;
- }
- //change from points to millipoints
- sx *= 1000;
- sy *= 1000;
- if (horzCount == 1) {
- sx += back.getHoriz();
- }
- if (vertCount == 1) {
- sy += back.getVertical();
- }
- for (int x = 0; x < horzCount; x++) {
- for (int y = 0; y < vertCount; y++) {
- // place once
- Rectangle2D pos;
- // Image positions are relative to the currentIP/BP
- pos = new Rectangle2D.Float(sx - currentIPPosition
- + (x * fopimage.getIntrinsicWidth()),
- sy - currentBPPosition
- + (y * fopimage.getIntrinsicHeight()),
- fopimage.getIntrinsicWidth(),
- fopimage.getIntrinsicHeight());
- drawImage(back.getURL(), pos);
- }
+ if (back.getImageInfo() != null) {
+ ImageSize imageSize = back.getImageInfo().getSize();
+ saveGraphicsState();
+ clipRect(sx, sy, paddRectWidth, paddRectHeight);
+ int horzCount = (int)((paddRectWidth
+ * 1000 / imageSize.getWidthMpt()) + 1.0f);
+ int vertCount = (int)((paddRectHeight
+ * 1000 / imageSize.getHeightMpt()) + 1.0f);
+ if (back.getRepeat() == EN_NOREPEAT) {
+ horzCount = 1;
+ vertCount = 1;
+ } else if (back.getRepeat() == EN_REPEATX) {
+ vertCount = 1;
+ } else if (back.getRepeat() == EN_REPEATY) {
+ horzCount = 1;
+ }
+ //change from points to millipoints
+ sx *= 1000;
+ sy *= 1000;
+ if (horzCount == 1) {
+ sx += back.getHoriz();
+ }
+ if (vertCount == 1) {
+ sy += back.getVertical();
+ }
+ for (int x = 0; x < horzCount; x++) {
+ for (int y = 0; y < vertCount; y++) {
+ // place once
+ Rectangle2D pos;
+ // Image positions are relative to the currentIP/BP
+ pos = new Rectangle2D.Float(sx - currentIPPosition
+ + (x * imageSize.getWidthMpt()),
+ sy - currentBPPosition
+ + (y * imageSize.getHeightMpt()),
+ imageSize.getWidthMpt(),
+ imageSize.getHeightMpt());
+ drawImage(back.getURL(), pos);
}
-
- restoreGraphicsState();
- } else {
- log.warn("Can't find background image: " + back.getURL());
}
+
+ restoreGraphicsState();
}
}
Modified: xmlgraphics/fop/branches/Temp_ImagePackageRedesign/src/java/org/apache/fop/render/pcl/PCLRenderer.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/branches/Temp_ImagePackageRedesign/src/java/org/apache/fop/render/pcl/PCLRenderer.java?rev=603358&r1=603357&r2=603358&view=diff
==============================================================================
--- xmlgraphics/fop/branches/Temp_ImagePackageRedesign/src/java/org/apache/fop/render/pcl/PCLRenderer.java (original)
+++ xmlgraphics/fop/branches/Temp_ImagePackageRedesign/src/java/org/apache/fop/render/pcl/PCLRenderer.java Tue Dec 11 13:13:22 2007
@@ -48,8 +48,12 @@
import java.util.Map;
import java.util.Stack;
+import org.w3c.dom.Document;
+
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
+import org.apache.xmlgraphics.java2d.GraphicContext;
+
import org.apache.fop.apps.FOPException;
import org.apache.fop.apps.MimeConstants;
import org.apache.fop.area.Area;
@@ -74,6 +78,7 @@
import org.apache.fop.image.FopImage;
import org.apache.fop.image.ImageFactory;
import org.apache.fop.image.XMLImage;
+import org.apache.fop.image2.ImageSize;
import org.apache.fop.render.Graphics2DAdapter;
import org.apache.fop.render.Graphics2DImagePainter;
import org.apache.fop.render.PrintRenderer;
@@ -86,8 +91,6 @@
import org.apache.fop.traits.BorderProps;
import org.apache.fop.util.QName;
import org.apache.fop.util.UnitConv;
-import org.apache.xmlgraphics.java2d.GraphicContext;
-import org.w3c.dom.Document;
/**
* Renderer for the PCL 5 printer language. It also uses HP GL/2 for certain graphic elements.
@@ -1151,52 +1154,45 @@
}
// background image
- if (back.getFopImage() != null) {
- FopImage fopimage = back.getFopImage();
- if (fopimage != null && fopimage.load(FopImage.DIMENSIONS)) {
- saveGraphicsState();
- clipRect(sx, sy, paddRectWidth, paddRectHeight);
- int horzCount = (int) ((paddRectWidth * 1000 / fopimage
- .getIntrinsicWidth()) + 1.0f);
- int vertCount = (int) ((paddRectHeight * 1000 / fopimage
- .getIntrinsicHeight()) + 1.0f);
- if (back.getRepeat() == EN_NOREPEAT) {
- horzCount = 1;
- vertCount = 1;
- } else if (back.getRepeat() == EN_REPEATX) {
- vertCount = 1;
- } else if (back.getRepeat() == EN_REPEATY) {
- horzCount = 1;
- }
- // change from points to millipoints
- sx *= 1000;
- sy *= 1000;
- if (horzCount == 1) {
- sx += back.getHoriz();
- }
- if (vertCount == 1) {
- sy += back.getVertical();
- }
- for (int x = 0; x < horzCount; x++) {
- for (int y = 0; y < vertCount; y++) {
- // place once
- Rectangle2D pos;
- // Image positions are relative to the currentIP/BP
- pos = new Rectangle2D.Float(
- sx - currentIPPosition
- + (x * fopimage.getIntrinsicWidth()),
- sy - currentBPPosition
- + (y * fopimage.getIntrinsicHeight()),
- fopimage.getIntrinsicWidth(),
- fopimage.getIntrinsicHeight());
- drawImage(back.getURL(), pos, null);
- }
+ if (back.getImageInfo() != null) {
+ ImageSize imageSize = back.getImageInfo().getSize();
+ saveGraphicsState();
+ clipRect(sx, sy, paddRectWidth, paddRectHeight);
+ int horzCount = (int) ((paddRectWidth * 1000 / imageSize.getWidthMpt()) + 1.0f);
+ int vertCount = (int) ((paddRectHeight * 1000 / imageSize.getHeightMpt()) + 1.0f);
+ if (back.getRepeat() == EN_NOREPEAT) {
+ horzCount = 1;
+ vertCount = 1;
+ } else if (back.getRepeat() == EN_REPEATX) {
+ vertCount = 1;
+ } else if (back.getRepeat() == EN_REPEATY) {
+ horzCount = 1;
+ }
+ // change from points to millipoints
+ sx *= 1000;
+ sy *= 1000;
+ if (horzCount == 1) {
+ sx += back.getHoriz();
+ }
+ if (vertCount == 1) {
+ sy += back.getVertical();
+ }
+ for (int x = 0; x < horzCount; x++) {
+ for (int y = 0; y < vertCount; y++) {
+ // place once
+ Rectangle2D pos;
+ // Image positions are relative to the currentIP/BP
+ pos = new Rectangle2D.Float(
+ sx - currentIPPosition
+ + (x * imageSize.getWidthMpt()),
+ sy - currentBPPosition
+ + (y * imageSize.getHeightMpt()),
+ imageSize.getWidthMpt(),
+ imageSize.getHeightMpt());
+ drawImage(back.getURL(), pos, null);
}
- restoreGraphicsState();
- } else {
- log.warn(
- "Can't find background image: " + back.getURL());
}
+ restoreGraphicsState();
}
}
---------------------------------------------------------------------
To unsubscribe, e-mail: fop-commits-unsubscribe@xmlgraphics.apache.org
For additional commands, e-mail: fop-commits-help@xmlgraphics.apache.org