【问题标题】:How do I embed an SVG image inside another SVG image using Batik svggen?如何使用 Batik svggen 将 SVG 图像嵌入到另一个 SVG 图像中?
【发布时间】:2013-09-03 18:12:39
【问题描述】:

我正在使用 Java Graphics2D 相关库以编程方式生成大图像。我正在使用 Batik 的 SVGGraphics2D 类来允许渲染到 SVG。

我的挑战是我有一组已经是 SVG 格式的图标,我想将它们嵌入到更大的图像中。

根据 Batik 文档,我了解如何使用 ImageTranscoder 将图标 SVG 文件带入 Graphics2D 环境。然而,这个过程会光栅化 SVG 文件并将它们转换为 BufferedImage。

结果是,当我以较大尺寸渲染主图像时,图标看起来很糟糕,而图像的其余部分却很清晰。

有没有一种方法可以使用 SVGGraphics2D 嵌入 SVG 图像而不首先对其进行光栅化?

谢谢

【问题讨论】:

    标签: java svg graphics2d batik


    【解决方案1】:

    使用createElementNS 创建一个SVG <image> 元素,使用setAttributeNS 将xlink:href 属性设置为托管SVG 图标的位置,使用setAttribute 设置x、y、宽度和高度属性。

    【讨论】:

    • 我认为这不适用于我的情况。我正在使用 SVGGraphics2D 类来创建 SVG 图像,我没有直接使用 DOM 模型。
    猜你喜欢
    • 2011-03-03
    • 2016-10-20
    • 2012-05-07
    • 1970-01-01
    • 2012-12-12
    • 2015-04-19
    • 2011-03-28
    • 2020-01-16
    • 2021-02-13
    相关资源
    最近更新 更多