如何从SVG路径创建BufferedImage?

3

我曾尝试在Google和Stackoverflow上寻找答案,但没有成功,但我相信这个问题以前肯定被问过了,所以如果有答案,请指点我。

目前,我有一个Java servlet,它从磁盘加载PNG到BufferedImage中,在其上写入文本,然后将byte[]流回客户端。

我的愿望是用一组在线获取的图标路径(例如"M21.871,9.814 15.684,16.001 21.871,22.188 18.335,25.725 8.612,16.001 18.335,6.276z""M22.727,18.242L4.792,27.208l8.966-8.966l-4.483-4.484l17.933-8.966l-8.966,8.966L22.727,18.242z")替换从磁盘加载的PNG,以呈现SVG路径。

我发现了BatikSVG Salamander,但是我不知道如何使用它们来实现上述功能,尤其是如何将SVG路径渲染到BufferedImage中。我需要能够指定(a)图像的尺寸,(b)填充颜色以及(c)和(d)描边宽度和颜色。
1个回答

4

我找到了很多关于加载SVG文件的例子和讨论,但我没有SVG文件。我有SVG路径,但我还没有看到任何将这些路径解析为可以渲染成BufferedImage的对象的方法。我错过了什么吗?是否有一种简单的方法将路径转换为SVG文件? - Martin
抱歉,我的意思是“解析这些路径”,而不是“解析这些页面”!! - Martin
是的,这是字符串拼接。String svgFile = "<?xml ... ?><svg><path d=\"" + myPaths + "\" /></svg>"; new TranscoderInput( new java.io.StringReader( svgFile ) ) - ignis
1
谢谢,这个完美地解决了我的问题。如果我有机会(并且一旦我确认它没有错误),我会尝试将现在可用的代码放入我的问题中。 - Martin

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接