3

我有一个标记为 299 DPI 分辨率的 BMP。我想将其更改为 99 DPI。

重要的是,BMP 中的 DPI 标记没有结构意义。图像具有一定的像素宽度和高度。显示应用程序可以以英寸为单位显示任何宽度的图像。

所以,DPI 只是一个提示。

但是,我正在处理一些第三方软件,这些软件的行为取决于这个标记,所以我需要重新设置它。

我将感谢有关如何在 Java 以及 GUI 图形工具(例如 Gimp)中以编程方式执行此操作的建议。

4

2 回答 2

2

在 .Net 中,您可以使用 Bitmap 类的 SetResolution 方法设置图像的 DPI 属性。不幸的是,我不知道你如何在 Java 中做到这一点。[更新最初询问“如何以编程方式执行此操作(尤其是在 Java 中)”的问题,这就是我提到 .Net 解决方案的原因。]

以下是如何更改 GIMP 中的分辨率属性:http://docs.gimp.org/en/gimp-image-print-size.html
在 Paint .Net(基于免费的.Net 图像编辑工具)中,您可以使用到图像-> 调整大小-> 修改分辨率字段。

于 2011-01-01T16:39:44.173 回答
2

对于 Java 部分,您可以使用img4j库。您有 BMP 的编码器和解码器。InfoHeader类有一个iXpixelsPerM和 iYpixelsPerM 来设置分辨率。您可以在此处查看 BMP 文件格式以获取更多信息。

此外,由于该库是开源的,您将能够检查和了解代码的工作方式,并且您将能够对其进行调整以满足您的需求(如果它符合您的许可模型)。

(新年快乐! :)

于 2011-01-01T19:55:38.577 回答