在Java中更改BMP图像的DPI

在Java中更改BMP图像的DPI,java,dpi,bmp,Java,Dpi,Bmp,我需要用java更改一个映像,因此我使用buffereImage来实现这一点。更改图像后,我需要以600 DPI的BMP格式保存它;但是,buffereImage默认DPI为72 我尝试直接在图像上设置DPI,但没有任何改变。 我引用以更改BMP格式的DPI数据 这是我用来更改DPI值的代码 public static void main(String[] args) throws Exception { File output = new File("/Users/alex/Deskt

我需要用java更改一个映像,因此我使用
buffereImage
来实现这一点。更改图像后,我需要以600 DPI的BMP格式保存它;但是,
buffereImage
默认DPI为72

我尝试直接在图像上设置DPI,但没有任何改变。 我引用以更改BMP格式的DPI数据

这是我用来更改DPI值的代码

public static void main(String[] args) throws Exception {
    File output = new File("/Users/alex/Desktop/out.bmp");

    try (RandomAccessFile f = new RandomAccessFile(output, "rw")) {
        f.seek(38);
        f.write(1);
        f.seek(42);
        f.write(1);
    }
}

BMP代表位图,表示每个像素值都存储在网格中。该网格只是简单地读入,没有任何特殊的解压缩或插值

BMP图像不会根据图像元数据中指示的DPI值进行更改,但如果该值准确,则效果更佳。相反,DPI是为了帮助任何人查看图像,了解DPI是什么。在图像中更改此选项是徒劳的,因为它实际上不会更改图像的分辨率

分辨率取决于图像的大小(图像中的像素数)

这是一篇关于位图的好文章。

您是否签出了这个问题?