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/07 09:46:56 UTC
svn commit: r602023 - in /xmlgraphics/fop/branches/Temp_ImagePackageRedesign:
src/java/org/apache/fop/image2/impl/batik/PreloaderSVG.java
test/java/org/apache/fop/image2/ImagePreloaderTestCase.java
Author: jeremias
Date: Fri Dec 7 00:46:56 2007
New Revision: 602023
URL: http://svn.apache.org/viewvc?rev=602023&view=rev
Log:
Bugfix for bug in SVG preloader which didn't calculate the size of an SVG correctly when there's no explicit size.
Modified:
xmlgraphics/fop/branches/Temp_ImagePackageRedesign/src/java/org/apache/fop/image2/impl/batik/PreloaderSVG.java
xmlgraphics/fop/branches/Temp_ImagePackageRedesign/test/java/org/apache/fop/image2/ImagePreloaderTestCase.java
Modified: xmlgraphics/fop/branches/Temp_ImagePackageRedesign/src/java/org/apache/fop/image2/impl/batik/PreloaderSVG.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/branches/Temp_ImagePackageRedesign/src/java/org/apache/fop/image2/impl/batik/PreloaderSVG.java?rev=602023&r1=602022&r2=602023&view=diff
==============================================================================
--- xmlgraphics/fop/branches/Temp_ImagePackageRedesign/src/java/org/apache/fop/image2/impl/batik/PreloaderSVG.java (original)
+++ xmlgraphics/fop/branches/Temp_ImagePackageRedesign/src/java/org/apache/fop/image2/impl/batik/PreloaderSVG.java Fri Dec 7 00:46:56 2007
@@ -46,7 +46,6 @@
import org.apache.fop.image2.util.ImageUtil;
import org.apache.fop.svg.SVGUserAgent;
import org.apache.fop.util.UnclosableInputStream;
-import org.apache.fop.util.UnitConv;
/**
* Image preloader for SVG images.
@@ -106,7 +105,7 @@
SVGDocument doc = (SVGDocument) factory.createSVGDocument(src.getSystemId(), in);
Element e = doc.getRootElement();
- float pxUnitToMillimeter = (float)UnitConv.pt2mm(0.001);
+ float pxUnitToMillimeter = 25.4f / context.getSourceResolution();
SVGUserAgent userAg = new SVGUserAgent(pxUnitToMillimeter,
new AffineTransform());
BridgeContext ctx = new BridgeContext(userAg);
@@ -118,20 +117,20 @@
if (s.length() == 0) {
s = SVGOMDocument.SVG_SVG_WIDTH_DEFAULT_VALUE;
}
- int width = Math.round(UnitProcessor.svgHorizontalLengthToUserSpace(
- s, SVGOMDocument.SVG_WIDTH_ATTRIBUTE, uctx));
+ float width = UnitProcessor.svgHorizontalLengthToUserSpace(
+ s, SVGOMDocument.SVG_WIDTH_ATTRIBUTE, uctx);
// 'height' attribute - default is 100%
s = e.getAttributeNS(null, SVGOMDocument.SVG_HEIGHT_ATTRIBUTE);
if (s.length() == 0) {
s = SVGOMDocument.SVG_SVG_HEIGHT_DEFAULT_VALUE;
}
- int height = Math.round(UnitProcessor.svgVerticalLengthToUserSpace(
- s, SVGOMDocument.SVG_HEIGHT_ATTRIBUTE, uctx));
+ float height = UnitProcessor.svgVerticalLengthToUserSpace(
+ s, SVGOMDocument.SVG_HEIGHT_ATTRIBUTE, uctx);
ImageInfo info = new ImageInfo(uri, getMimeType());
ImageSize size = new ImageSize();
- size.setSizeInMillipoints(width, height);
+ size.setSizeInMillipoints(Math.round(width * 1000), Math.round(height * 1000));
//Set the resolution to that of the FOUserAgent
size.setResolution(context.getSourceResolution());
size.calcPixelsFromSize();
Modified: xmlgraphics/fop/branches/Temp_ImagePackageRedesign/test/java/org/apache/fop/image2/ImagePreloaderTestCase.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop/branches/Temp_ImagePackageRedesign/test/java/org/apache/fop/image2/ImagePreloaderTestCase.java?rev=602023&r1=602022&r2=602023&view=diff
==============================================================================
--- xmlgraphics/fop/branches/Temp_ImagePackageRedesign/test/java/org/apache/fop/image2/ImagePreloaderTestCase.java (original)
+++ xmlgraphics/fop/branches/Temp_ImagePackageRedesign/test/java/org/apache/fop/image2/ImagePreloaderTestCase.java Fri Dec 7 00:46:56 2007
@@ -154,11 +154,27 @@
assertEquals(uri, info.getOriginalURI());
assertEquals(16, info.getSize().getWidthPx());
assertEquals(16, info.getSize().getHeightPx());
- assertEquals(72, info.getSize().getDpiHorizontal(), 0.1);
+ assertEquals(userAgent.getSourceResolution(), info.getSize().getDpiHorizontal(), 0.1);
assertEquals(16000, info.getSize().getWidthMpt());
assertEquals(16000, info.getSize().getHeightMpt());
}
+ public void testSVGNoSize() throws Exception {
+ String uri = "test/resources/images/img.svg";
+ FOUserAgent userAgent = fopFactory.newFOUserAgent();
+
+ ImageManager manager = fopFactory.getImageManager();
+ ImageInfo info = manager.preloadImage(uri, userAgent.getImageSessionContext());
+ assertNotNull("ImageInfo must not be null", info);
+ assertEquals(MimeConstants.MIME_SVG, info.getMimeType());
+ assertEquals(uri, info.getOriginalURI());
+ assertEquals(100, info.getSize().getWidthPx()); //100 = default viewport size
+ assertEquals(100, info.getSize().getHeightPx());
+ assertEquals(userAgent.getSourceResolution(), info.getSize().getDpiHorizontal(), 0.1);
+ assertEquals(100000, info.getSize().getWidthMpt());
+ assertEquals(100000, info.getSize().getHeightMpt());
+ }
+
public void testWMF() throws Exception {
String uri = "test/resources/images/testChart.wmf";
---------------------------------------------------------------------
To unsubscribe, e-mail: fop-commits-unsubscribe@xmlgraphics.apache.org
For additional commands, e-mail: fop-commits-help@xmlgraphics.apache.org