设置 PNG 文件的 DPI

发布于 2024-08-07 04:24:39 字数 451 浏览 5 评论 0原文

我有一堆使用我编写的 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()。有人能指出我正确的方向吗?谢谢。

I have a bunch of diagrams created using a Java diagramming tool that I wrote - they are mostly black and white diagrams, with the blocks in aqua, and occasional other colours. They are currently being saved as JPG files, and I want to insert them into a book that I am preparing for Print On Demand.

The book is an OpenOffice ODT file, which will later be converted to a PDF.

Currently I use JPG files, but the print facility they use requires 300 DPI, so I modified my diagramming tool to set the xDensity and yDensity to 300, and resUnits to 1, using getAsTree(), and then expand the diagram by a factor of 3 (300/96). IMO the result looks pretty good!

Unfortunately, someone on another forum pointed out that line diagrams are "fuzzed" on JPG files, so suggested that I change over to PNG, or possibly BMP files, both of which ODT files allow to be inserted.

My problem is that BMPs don't seem to have a DPI, and PNGMetadata doesn't seem to support getAsTree(). Can someone point me in the right direction? Thanks.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

喜爱纠缠 2024-08-14 04:24:39

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

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

I don't understand the getAsTree() part, but answering the question that appears in the title, setting dpi for PNG files, you could use the imagemagick convert tool:

convert -density 300 -units pixelsperinch infile.jpg outfile.png
漫雪独思 2024-08-14 04:24:39

PNG、BMP 和许多其他图像格式不会压缩您的图表 - 压缩可能是您的评论者所理解的。 JPEG 非常适合照片,但不适合图表。

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

希望有帮助!

PNG, BMP and dozens of other image formats don't compress your diagrams - compression is probably what your commentor was getting at. JPEGs are great for photos but suck at diagrams.

You might want to look into SVG and other vector formats. Or if your environment allows, exporting 0% compression JPEGs and converting them into another format for lossless reproduction at 300DPI.

Hope that helps!

云淡月浅 2024-08-14 04:24:39

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

I decided not to try to do this programmatically. Instead I create the original diagram in PNG, then convert to 300 DPI using Irfanview. Irfanview's batch capability lets me convert to 300 DPI, scale up to compensate, and set to grey scale, all in one operation - and on multiple files at a time. This seems to be the best solution - but thanks to everyone anyway!

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文