Tag: 蜡染

在程序中如何在蜡染中更改SVG图像的属性?

我希望能够在程序运行时通过按下按钮来更改SVG文档的属性(例如,通过更改填充颜色将黑色方块变为蓝色)。 这是我的代码: this.addSVGDocumentLoaderListener(new SVGDocumentLoaderAdapter() { @Override public void documentLoadingCompleted(SVGDocumentLoaderEvent e) { setupSVGDocument(); }}); } private SVGDocument doc; private void setupSVGDocument(){ doc = this.getSVGDocument(); } 然后我希望能够使用doc来获取id的元素,并在按下这样的按钮时更改元素的属性: private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) { el = doc.getElementById(“statusColor”); el.setAttributeNS(null, “stop-color”, “green”); } 图形不会更新! 请帮忙!

Swing&Batik:从SVG文件创建ImageIcon?

简单地说,我正在寻找一种使用batik库从SVG文件制作ImageIcon的方法。 我不想首先将SVG光栅转换为磁盘,我只是希望能够从jar文件中提取svg并将其作为UI元素。 我觉得这应该相当容易,但蜡染javadocs并没有告诉我我需要知道什么。 (为什么选择蜡染?好吧,我们已经在使用它了,所以我们不必经营其他合法的图书馆。)

带有DOM /蜡染的事件clic:恢复引用符号的use标签

晚上好, 我目前正在研究Java中的图形应用程序(处理svg文件),使用batik直接操作DOM文档svg。 我在“符号”标签中声明的各种元素由标签“使用”使用和/显示。 这里的文件svg: 我在svg的一个元素上添加了一个事件: ((EventTarget) objAdd.getNodeUse()).addEventListener( SVGConstants.SVG_MOUSEDOWN_EVENT_TYPE, new EObject(), false); ((EventTarget) objAdd.getNodeDefs()).addEventListener( SVGConstants.SVG_MOUSEDOWN_EVENT_TYPE, new EObject(), false); 在一个区域(与组元素g匹配) Element elt = doc.getElementById(“nameZone1”); EventTarget t = (EventTarget)elt; t.addEventListener(SVGConstants.SVG_MOUSEDOWN_EVENT_TYPE, new EObject(), false); EObject类实现了org.w3c.dom.events.EventListener: import org.w3c.dom.Element; import org.w3c.dom.events.Event; public class EObject implements org.w3c.dom.events.EventListener { public void handleEvent(Event evt) { System.out.println(“YOUPIIII JE SUIS CLIQUE”); Element e = (Element) evt.getCurrentTarget(); […]

如何将SVG图像添加到使用HTML和Flying Saucer库(和Batik)构建的PDF?

我正在使用飞碟库(旧的但开源的)使用XHTML生成PDF。 我有这个工作,但我也想添加SVG图像。 我开始致力于整合蜡染试图让它工作,但我遇到了问题。 未绘制SVG图像。 XHTML仍然呈现,但它似乎没有显示SVG。 我已经让SVG在单独的PDF上渲染,但从未与飞碟结果一起渲染。 我添加了通常的ReplacedElementFactory(它也适用于常规图像,但还没有包含该代码)。 唯一相关的方法(确实被调用和所有内容)如下: @Override public ReplacedElement createReplacedElement(LayoutContext layoutContext, BlockBox blockBox, UserAgentCallback userAgentCallback, int cssWidth, int cssHeight) { Element element = blockBox.getElement(); if (element == null) { return null; } String nodeName = element.getNodeName(); if (“img”.equals(nodeName)) { SAXSVGDocumentFactory factory = new SAXSVGDocumentFactory(XMLResourceDescriptor.getXMLParserClassName()); SVGDocument svgImage = null; try { svgImage = factory.createSVGDocument(new […]

使用Java读取svg路径数据的最简单方法?

我正在寻找使用svg图像并解析/处理不同的路径来进行自定义转换。 在Java中,简单地提取路径数据的最简单方法是什么? 我正在查看apache xmlgraphics / batik包,但是如何返回路径类型和参数并不是很明显。 有什么建议么?

如何使用Apache Batik将一个SVG图像叠加到另一个上?

我需要使用Batik覆盖2个SVG文件。 一个文件用作背景图像,为308px×308px,而第二个文件(260px×260px)是必须居中的前景图像(即背景图像的中心)。 我希望将操作的结果保存在第三个SVG文件中。 如果您熟悉Batik,我将非常感谢您的建议。 谢谢, 奥利维尔。

使用带有元素的另一个svg图像创建一个带有嵌入式base64字符串的SVG图像

我有一个SVG文件,其中包含几个元素(如路径,圆形,矩形等)。 我想将该SVG文件转换为具有嵌入式base64数据而非多个元素的SVG。 可以用Batik做到吗? 我正在进行的项目要求我只使用Java库。

如何从SVG获取BuffererImage?

我正在使用Batik来处理SVG图像。 有没有办法从SVG文件中获取java.awt.image.BufferedImage? 我知道有转码器,我可以将SVG转码为例如PNG,然后用ImageIO.read()加载PNG但我不想拥有临时文件。

如何加载和解析SVG文档

背景 有许多与阅读和解析SVG路径相关的未解答的问题: 使用Java读取svg路径数据的最简单方法? Re:使用batik svg解析器解析svg文件 https://stackoverflow.com/questions/16672100 如何将SVG Path(SVGOMPathElement)转换为数组? 这个问题和答案旨在解决所有这些问题。 问题 SVG path元素包含数据属性 ( d )。 有时需要从SVG文件中加载,解析和提取路径信息。 题 如何使用Java从SVG文件加载,解析和提取SVG路径信息?