Как получить размер (ширину/высоту) изображения SVG с помощью batik (1.7)?Как получить размер изображения (ширина/высота) изображения SVG с помощью batik
String s = "https://openclipart.org/download/228858";
InputStream is = new URL(s).openStream();
DocumentBuilderFactory f = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = f.newDocumentBuilder();
Document doc = builder.parse(is);
SVGGeneratorContext ctx = SVGGeneratorContext.createDefault(doc);
SVGGraphics2D svg = new SVGGraphics2D(ctx,false);
Dimension d = svg.getSVGCanvasSize();
Rectangle r = svg.getClipBounds();
System.out.println(svg.toString()); //org.apache.batik.svggen.SVGGraphics2D[font=java.awt.Font[family=Dialog,name=sanserif,style=plain,size=12],color=java.awt.Color[r=0,g=0,b=0]]
System.out.println("Dimension null? "+(d==null)); //true
System.out.println("Rectangle null? "+(r==null)); //true
Пример может быть выполнен непосредственно и загружен с открытого сайта clipart.org. В качестве альтернативы абсолютному размеру меня также интересует соотношение сторон изображения.
Спасибо за предоставление кода, но это, кажется, еще один пример получения оценки, если структура SVG является Perfekt , к сожалению, мне приходится обращаться с такими искаженными документами. – Thor
accualy это не искаженный документ, но он использует пространство имен sodipodi для sodipodi xr: и yr: выполнит работу r, если они оба имеют одинаковое значение – achabahe