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

Java 如何使用Apache Batik将一个SVG图像叠加到另一个SVG图像上?,java,svg,batik,Java,Svg,Batik,我有2个SVG文件需要用蜡染覆盖。一个文件用作背景图像,是308px x 308px,而第二个文件(260px x 260px)是必须居中的前景图像(即背景图像的中心)。我希望操作的结果保存在第三个SVG文件中。 如果您熟悉蜡染,我将非常感谢您的建议 谢谢 Olivier.如果您不需要在最后一个文档中包含背景文档和前景文档的内容,您可以使用简单的引用: <svg xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.

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

谢谢


Olivier.

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

<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构造文档的示例,请参见

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

  • 设a=由background.svg生成的
    文档
  • 设b=解析foreground.svg得到的
    文档
  • 设e=
    a.
    (b.getDocumentElement(),true)
  • 将e的
    x
    y
    属性设置为“24”
  • 调用
    a.getDocumentElement().appendChild(e)
现在是一个合并了前台内容的文档