【发布时间】:2012-11-03 12:46:48
【问题描述】:
我有一些现有的代码,看起来很像Swing & Batik: Create an ImageIcon from an SVG file? 上的解决方案
但是我的图像的目的地是 PDF,当你放大 PDF 时,你会看到像素,这让我很困扰。如果源数据和目标数据都是矢量图形,应该可以直接渲染。
我们正在使用的库 (iText) 采用 java.awt.Image,但我似乎无法弄清楚如何获取呈现 SVG 的 java.awt.Image。 Batik 有办法做到这一点吗?
【问题讨论】:
-
将 SVG 图像转换为
java.awt.Image会将 SVG 转换为 SVG 的像素表示,它不会保留矢量信息。我不知道它是否会有所帮助,但您可能想看看this,这是我在 Google 上获得的“iText SVG”的第一个热门 -
Hmm... 转换成 java.awt.BufferedImage 至少会丢掉向量信息,但我的印象是因为 java.awt.Image 是抽象的,所以不应该画一个取决于分辨率。
-
Image仍然由像素数据支持(在大多数情况下),尤其是在渲染到图形上下文时 -
是的,因为它是“在大多数情况下”,我认为剩下的一种情况可以让我用 SVG 来支持它。 :) 至于那个例子,PdfGraphics2D 的构造函数是私有的。我猜这是针对不同版本的 iText,但我认为我们是最新的。
-
要让
Image在 iText 中工作,iText 需要提供实现,因为 iText 只知道如何在给定的上下文中绘制它。