public static BufferedImage getResourceBitmap(InputStream inputStream, String name, float scaleFactor, float defaultSize, int width, int height, int percent) throws IOException { try { URI uri = SVGCache.getSVGUniverse().loadSVG(inputStream, name); SVGDiagram diagram = SVGCache.getSVGUniverse().getDiagram(uri); double scale = scaleFactor / Math.sqrt((diagram.getHeight() * diagram.getWidth()) / defaultSize); float[] bmpSize = GraphicUtils.imageSize(diagram.getWidth(), diagram.getHeight(), (float) scale, width, height, percent); SVGIcon icon = new SVGIcon(); icon.setAntiAlias(true); icon.setAutosize(SVGIcon.AUTOSIZE_STRETCH); icon.setPreferredSize(new Dimension((int) bmpSize[0], (int) bmpSize[1])); icon.setSvgURI(uri); BufferedImage bufferedImage = new BufferedImage(icon.getIconWidth(), icon.getIconHeight(), BufferedImage.TYPE_INT_ARGB); icon.paintIcon(null, bufferedImage.createGraphics(), 0, 0); return bufferedImage; } catch (Exception e) { throw new IOException(e); } }
File f = new File("awesome_tiger.svg"); g.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON); SVGUniverse svgUniverse = new SVGUniverse(); try { SVGDiagram diagram = svgUniverse.getDiagram(svgUniverse.loadSVG(f.toURI().toURL())); try { AffineTransform at = new AffineTransform(); at.setToScale(jdpPane.getWidth()/diagram.getWidth(), jdpPane.getWidth()/diagram.getWidth()); g.transform(at); diagram.render(g); } catch(Exception e2) {System.out.println(e2);}} catch (Exception ex) {System.out.println(ex);}
SVGDiagram diagram = SVGCache.getSVGUniverse().getDiagram(uri); setStroke(Color.BLACK, getHexString(Color.GREEN), diagram.getRoot());
SVGUniverse svgUniverse = new SVGUniverse( ); SVGDiagram svgDiagram = svgUniverse.getDiagram( svgUniverse.loadSVG( new StringReader( svgText ), svgName ) ); svgDiagram.setIgnoringClipHeuristic( true ); int iAnchor = ( int ) round( -cgmBounds[ 0 ] * cgmUnitsToScreenPixels ); int jAnchor = ( int ) round( -cgmBounds[ 1 ] * cgmUnitsToScreenPixels ); int width = max( 1, ( int ) round( svgDiagram.getWidth( ) * svgUnitsToScreenPixels ) ); int height = max( 1, ( int ) round( svgDiagram.getHeight( ) * svgUnitsToScreenPixels ) ); g.setRenderingHint( KEY_ANTIALIASING, VALUE_ANTIALIAS_ON ); g.scale( svgUnitsToScreenPixels, svgUnitsToScreenPixels ); svgDiagram.render( g ); return new AnchoredImage( image, iAnchor, jAnchor );
@Override public int getWidth() { return (int)Math.ceil(diagram.getWidth()); }
@Override public int getHeight() { return (int)Math.ceil(diagram.getHeight()); }
return fragment == null ? dia.getRoot() : dia.getElement(fragment);
@Override public void paint(Graphics2D graphics) { try { graphics.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON); diagram.render(graphics); } catch (SVGException exception) { throw new RuntimeException(exception); } } }
/** * Loads an SVG document from a URI. * @param svgURI - URI to load document from */ public void setSvgURI(URI svgURI) { URI old = this.svgURI; this.svgURI = svgURI; SVGDiagram diagram = svgUniverse.getDiagram(svgURI); if (diagram != null) { Dimension size = getPreferredSize(); if (size == null) { size = new Dimension((int)diagram.getRoot().getDeviceWidth(), (int)diagram.getRoot().getDeviceHeight()); } diagram.setDeviceViewport(new Rectangle(0, 0, size.width, size.height)); } changes.firePropertyChange("svgURI", old, svgURI); }
/** * Update this image to reflect the passed time */ public void updateTime(double curTime) throws SVGException { if (diagram == null) return; diagram.updateTime(curTime); }
public void setSize(int width, int height) { int previousWidth = getWidth(); int previousHeight = getHeight(); SVGRoot root = diagram.getRoot(); try { root.setAttribute("width", AnimationElement.AT_XML, Integer.toString(width)); root.setAttribute("height", AnimationElement.AT_XML, Integer.toString(height)); } catch (SVGElementException exception) { throw new RuntimeException(exception); } try { diagram.updateTime(0.0); } catch (SVGException exception) { throw new RuntimeException(exception); } imageListeners.sizeChanged(this, previousWidth, previousHeight); }
diagram.render(g); g.setRenderingHint(RenderingHints.KEY_ANTIALIASING, oldAliasHint); diagram.getViewRect(rect); diagram.render(g);
Rectangle deviceViewport = diagram.getDeviceViewport(); if (width != null && height != null)
diagram = new SVGDiagram(xmlBase, universe);
private SVGDiagram createDiagram(String svg) { final SVGUniverse universe = new SVGUniverse(); final URI uri = universe.loadSVG(new StringReader(svg), "//graph/"); final SVGDiagram diagram = universe.getDiagram(uri); diagram.setIgnoringClipHeuristic(true); return diagram; }
StringReader reader = new StringReader(svgInString); uri = SVGCache.getSVGUniverse().loadSVG(reader, "myImage"); SVGDiagram diagram = SVGCache.getSVGUniverse().getDiagram(uri); Text text = (Text) diagram.getElement("region1Text"); text.appendText("20"); text.rebuild();
diagram.setIgnoringClipHeuristic(!clipToViewbox); if (clipToViewbox) g.setClip(new Rectangle2D.Float(0, 0, diagram.getWidth(), diagram.getHeight())); diagram.render(g); g.translate(-x, -y); g.setRenderingHint(RenderingHints.KEY_ANTIALIASING, oldAliasHint); double diaWidth = diagram.getWidth(); double diaHeight = diagram.getHeight(); diagram.render(g);
@Override public int getWidth() { return (int)Math.ceil(diagram.getWidth()); }