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

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

因此,DPI只是一个提示。

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

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

最佳答案

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

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

(新年快乐! :)

07-25 23:21
查看更多