有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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

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

谢谢

奥利弗


共 (1) 个答案

  1. # 1 楼答案

    如果您不需要在最后一个文档中包含背景和前景文档的内容,您可以使用以下方法简单地引用它们:

    <svg xmlns='http://www.w3.org/2000/svg'
         xmlns:xlink='http://www.w3.org/1999/xlink'
         width='308' height='308' viewBox='0 0 308 308'>
      <image xlink:href='background.svg' width='308' height='308'/>
      <image xlink:href='foreground.svg' x='24' y='24' width='260' height='260'/>
    </svg>
    

    使用DOM构造此文档应该很简单。有关使用DOM API构造文档的示例,请参见here

    如果需要将两个文档合并为一个文档,则可以:

    • a=由parsing背景产生的Document。svg
    • b=解析前景得到的Document。svg
    • e=a.^{}{}
    • exy属性设置为“24”
    • 调用a.getDocumentElement().appendChild(e)

    现在,a是一个合并了前台内容的文档