我摄取的图像AWT(从PDF,通过PDFBox的)用下面的代码:转换AWT图像SVG图片
private java.awt.Graphics2D graphics;
public void drawImage(java.awt.Image awtImage, java.awt.geom.AffineTransform at) {
graphics.setComposite(getGraphicsState().getStrokeJavaComposite());
graphics.setClip(getGraphicsState().getCurrentClippingPath());
graphics.drawImage(awtImage, at, null);
}
和希望捕获/输出的图像为SVG。我一直用它产生的形式
<image x="0" y="0" transform="matrix(0.144,0,0,0.1439,251.521,271.844)"
clip-path="url(#clipPath2)" width="1797" xlink:href="data:image/png;
base64,iVBORw0KGgoAAAANSUhEUgAABwUAAAV4CAMAAAB2DvLsAAADAFBMVEX////+/v56
enpWVlZbW1taWlpZWVnHx8eRkZFVVVWMjIysrKxXV1dYWFhqamr5+fnMzMxeXl7c
3NyUlJR/f3+3t7cAAACGhob29vYpKSliYmJPT083Nzf8/PyBgYENDQ3s7OwwMDD1
...
RERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERE
RPQP/R8CiIK+y8Q6KQAAAABJRU5ErkJggg==" height="1400"
preserveAspectRatio="none" stroke-width="0" xmlns:xlink="http://www.w3.org/1999/xlink"/>
我有我自己的SVG库,并想方法添加到我的SVGImage类产生类似的SVG的蜡染库。我是否需要将AffineTransformation应用于数据,如果是这样的话?
我希望能指出适当的(F/OSS)方法或库可以做到这一点。数据应该是内联的(如上例)和XML兼容。
更新:在没有任何答案或评论我不得不写我自己的实现。这不是微不足道的,可能不健壮或最好的解决方案。我附上它作为答案 - 请评论它是否有缺陷或可以改进。