7

我有一堆使用我编写的 Java 图表工具创建的图表——它们大多是黑白图表,带有水色的块,偶尔还有其他颜色。它们目前被保存为 JPG 文件,我想将它们插入到我正在为按需打印做准备的书中。

这本书是一个 OpenOffice ODT 文件,稍后将转换为 PDF。

目前我使用 JPG 文件,但他们使用的打印工具需要 300 DPI,所以我修改了我的图表工具,使用 getAsTree() 将 xDensity 和 yDensity 设置为 300,并将 resUnits 设置为 1,然后将图表扩展为3 (300/96)。IMO 结果看起来还不错!

不幸的是,另一个论坛上的某人指出,线图在 JPG 文件上“模糊化”,因此建议我改用 PNG 或 BMP 文件,这两种文件都允许插入 ODT 文件。

我的问题是 BMP 似乎没有 DPI,而且 PNGMetadata 似乎不支持 getAsTree()。有人可以指出我正确的方向吗?谢谢。

4

3 回答 3

19

我不明白 getAsTree() 部分,但回答标题中出现的问题,为 PNG 文件设置 dpi,您可以使用 imagemagick 转换工具:

convert -density 300 -units pixelsperinch infile.jpg outfile.png
于 2009-10-11T19:49:38.700 回答
3

PNG、BMP 和数十种其他图像格式不会压缩您的图表 - 压缩可能是您的评论者想要的。JPEG 非常适合照片,但不适合图表。

您可能想研究 SVG 和其他矢量格式。或者,如果您的环境允许,导出 0% 压缩 JPEG 并将它们转换为另一种格式,以便以 300DPI 无损再现。

希望有帮助!

于 2009-10-11T19:34:06.143 回答
0

我决定不尝试以编程方式执行此操作。相反,我在 PNG 中创建原始图表,然后使用 Irfanview 转换为 300 DPI。Irfanview 的批处理功能让我可以在一次操作中转换为 300 DPI、放大以进行补偿并设置为灰度,并且一次处理多个文件。这似乎是最好的解决方案 - 但无论如何都要感谢大家!

于 2009-11-20T20:30:06.587 回答