为PNG文件设置DPI

时间:2009-10-11 19:29:06

标签: png dpi

我使用我编写的Java图表工具创建了一堆图表 - 它们主要是黑白图表,其中包含aqua中的块,偶尔还有其他颜色。它们目前被保存为JPG文件,我想将它们插入到我正在准备Print On Demand的书中。

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

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

不幸的是,另一个论坛上有人指出线图在JPG文件上“模糊”,因此建议我切换到PNG,或者可能是BMP文件,这两个ODT文件都允许插入。

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

3 个答案:

答案 0 :(得分:19)

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

convert -density 300 -units pixelsperinch infile.jpg outfile.png

答案 1 :(得分:3)

PNG,BMP和其他几十种图像格式都不能压缩你的图表 - 压缩可能就是你的评论者所得到的。 JPEG非常适合拍照,但很糟糕。

您可能需要查看SVG和其他矢量格式。或者,如果您的环境允许,导出0%压缩JPEG并将其转换为另一种格式,以便在300DPI下进行无损复制。

希望有所帮助!

答案 2 :(得分:0)

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