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

时间:2010-06-14 14:10:53

标签: java svg batik

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

谢谢,

奥利弗。

1 个答案:

答案 0 :(得分:8)

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

<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 background.svg
  • 产生的Document
  • b =解析foreground.svg产生的Document
  • e = a. importNode (b.getDocumentElement(), true)
  • e xy属性设置为“24”
  • 致电a.getDocumentElement().appendChild(e)

现在 a 是一个合并了前景内容的文档。

相关问题