我有一个BMP标记为299 DPI分辨率。我想将其更改为99 DPI。
重要的是,BMP中的DPI标记没有结构含义。图像具有一定的宽度和高度(以像素为单位)。显示应用程序可以以英寸为单位显示任意宽度的图像。
因此,DPI只是一个提示。
但是,我正在处理一些第三方软件,这些软件的行为取决于此标记,因此我需要重新设置它。
我将对有关如何在Java中以及在GUI图形工具(例如Gimp)中以编程方式执行此操作的建议表示赞赏。
最佳答案
对于Java部分,可以使用img4j库。
您具有BMP的编码器和解码器。 InfoHeader类具有一个iXpixelsPerM和iYpixelsPerM来设置分辨率。您可以检查BMP文件格式here以获取更多信息。
此外,由于该库是开源的,因此您可以检查并了解代码的工作方式,并且可以对其进行调整以适合您的需求(如果它符合许可模型)。
(新年快乐! :)