You are viewing a plain text version of this content. The canonical link for it is here.
Posted to batik-users@xmlgraphics.apache.org by Ákos Maróy <ak...@maroy.hu> on 2013/01/19 18:33:37 UTC

SVG rasterizing issue with TiledImage

Hi,

I seem to have found an issue when trying to rasterize an SVG document
into a TiledImage. The same document when rendered into a BufferedImage
works fine. I wonder what I might be doing wrong.

The source code to demonstrate the problem is here:
http://pastebin.com/gqzi8mu5
please find the SVG file I'm trying to render attached

in the sample source, if one created a BufferedImage object, the SVG is
rendered properly. if a TiledImage is created, it does not appear in the
image.

This is on Ubuntu 12.10, 64 bit, Sun JDK 1.7.0_09, using batik 1.7.

Any help would be appreciated.


Akos


Re: SVG rasterizing issue with TiledImage

Posted by Ákos Maróy <ak...@maroy.hu>.
Hi,

Looking at the issue below in more detail, rendering fails at the
following point: in AbstractGraphicsNode.paint(), at line 491:

        boolean paintNeeded = true;
        Shape g2dClip = curClip; //g2d.getClip();
        if (g2dClip != null) {
            Rectangle2D cb = g2dClip.getBounds2D();
            if(!bounds.intersects(cb.getX(),     cb.getY(),
                                  cb.getWidth(), cb.getHeight()))
                paintNeeded = false;
        }


I looked at the data, and it seems that this fails because the bounds
used in this intersection test do not have the transformation from the
Graphics2D object applied to them. thus, it is not the final (rendering)
bounds that is compared to the clip area, but the 'original' bounds of
the graphics node.

I can't test if this would work or not, as I can't compile batik out of
the box, see here: https://issues.apache.org/jira/browse/BATIK-1033

I've created a ticket with this issue here:
https://issues.apache.org/jira/browse/BATIK-1034


Akos