我有一个标记为 299 DPI 分辨率的 BMP。我想将其更改为 99 DPI。
重要的是,BMP 中的 DPI 标记没有结构意义。图像具有一定的像素宽度和高度。显示应用程序可以以英寸为单位显示任何宽度的图像。
所以,DPI 只是一个提示。
但是,我正在处理一些第三方软件,这些软件的行为取决于这个标记,所以我需要重新设置它。
我将感谢有关如何在 Java 以及 GUI 图形工具(例如 Gimp)中以编程方式执行此操作的建议。
我有一个标记为 299 DPI 分辨率的 BMP。我想将其更改为 99 DPI。
重要的是,BMP 中的 DPI 标记没有结构意义。图像具有一定的像素宽度和高度。显示应用程序可以以英寸为单位显示任何宽度的图像。
所以,DPI 只是一个提示。
但是,我正在处理一些第三方软件,这些软件的行为取决于这个标记,所以我需要重新设置它。
我将感谢有关如何在 Java 以及 GUI 图形工具(例如 Gimp)中以编程方式执行此操作的建议。
在 .Net 中,您可以使用 Bitmap 类的 SetResolution 方法设置图像的 DPI 属性。不幸的是,我不知道你如何在 Java 中做到这一点。[更新最初询问“如何以编程方式执行此操作(尤其是在 Java 中)”的问题,这就是我提到 .Net 解决方案的原因。]
以下是如何更改 GIMP 中的分辨率属性:http://docs.gimp.org/en/gimp-image-print-size.html
在 Paint .Net(基于免费的.Net 图像编辑工具)中,您可以使用到图像-> 调整大小-> 修改分辨率字段。
对于 Java 部分,您可以使用img4j库。您有 BMP 的编码器和解码器。InfoHeader类有一个iXpixelsPerM和 iYpixelsPerM 来设置分辨率。您可以在此处查看 BMP 文件格式以获取更多信息。
此外,由于该库是开源的,您将能够检查和了解代码的工作方式,并且您将能够对其进行调整以满足您的需求(如果它符合您的许可模型)。
(新年快乐! :)