Advertisement
Guest User

batik SVG rendering issue with TiledImage

a guest
Jan 19th, 2013
79
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.50 KB | None | 0 0
  1. package hu.tyrell.openaviationmap.rendering;
  2.  
  3. import java.awt.Graphics2D;
  4. import java.awt.geom.AffineTransform;
  5. import java.awt.image.ColorModel;
  6. import java.awt.image.DataBuffer;
  7. import java.awt.image.SampleModel;
  8.  
  9. import javax.media.jai.JAI;
  10. import javax.media.jai.RasterFactory;
  11. import javax.media.jai.TiledImage;
  12.  
  13. import org.apache.batik.bridge.BridgeContext;
  14. import org.apache.batik.bridge.DocumentLoader;
  15. import org.apache.batik.bridge.GVTBuilder;
  16. import org.apache.batik.bridge.UserAgent;
  17. import org.apache.batik.bridge.UserAgentAdapter;
  18. import org.apache.batik.dom.svg.SAXSVGDocumentFactory;
  19. import org.apache.batik.gvt.GraphicsNode;
  20. import org.apache.batik.util.XMLResourceDescriptor;
  21. import org.w3c.dom.Document;
  22.  
  23. public class RenderSvg {
  24.  
  25.     /**
  26.      * @param args
  27.      */
  28.     public static void main(String[] args) throws Exception {
  29.         String parser = XMLResourceDescriptor.getXMLParserClassName();
  30.         SAXSVGDocumentFactory f = new SAXSVGDocumentFactory(parser);
  31.         String uri = "file:/tmp/navaid_designated.svg";
  32.         Document doc = f.createDocument(uri);
  33.  
  34.         UserAgent userAgent = new UserAgentAdapter();
  35.         DocumentLoader loader = new DocumentLoader(userAgent);
  36.         BridgeContext ctx = new BridgeContext(userAgent, loader);
  37.         ctx.setDynamic(true);
  38.  
  39.         // creates node builder and builds node
  40.         GVTBuilder builder = new GVTBuilder();
  41.         GraphicsNode node = builder.build(ctx, doc);
  42.  
  43.         /*
  44.         BufferedImage image = new BufferedImage(600, 600,
  45.                                             BufferedImage.TYPE_INT_RGB);
  46.          */
  47.  
  48.         SampleModel sampleModel = RasterFactory.createBandedSampleModel(
  49.                 DataBuffer.TYPE_BYTE,
  50.                 1024, 1024,
  51.                 3);
  52.         ColorModel cm = TiledImage.createColorModel(sampleModel);
  53.  
  54.         TiledImage image = new TiledImage(0, 0,
  55.                               600, 600,
  56.                               0, 0,
  57.                               sampleModel, cm);
  58.  
  59.  
  60.  
  61.         Graphics2D gr = image.createGraphics();
  62.  
  63.         // AffineTransform[[0.074376245138032, 0.0, 199.48220825195312], [0.0, 0.074781688024915, 117.63469696044922]]
  64.  
  65.         AffineTransform transform = new AffineTransform(
  66.                 0.074376245138032, 0.0, 0.0, 0.074781688024915, 199.48220825195312, 117.63469696044922);
  67.         gr.setTransform(transform);
  68.  
  69.         node.paint(gr);
  70.  
  71.         JAI.create("filestore", image, "/tmp/svg.tif", "TIFF", null);
  72.     }
  73.  
  74. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement