我需要使用java更改图像,因此我使用BufferedImage
。更改图像后,我需要将其保存为具有600 DPI的BMP格式;但是,BufferedImage
默认DPI为72。
我试图直接在图像上设置DPI,但没有任何改变。 我引用this Wikipedia article来更改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);
}
}
答案 0 :(得分:2)
BMP代表Bitmap,它表示每个像素值都存储在网格中。只需读入此网格,无需任何特殊的解压缩或插值。
BMP图像不会根据图像元数据中指示的DPI值进行更改,但在值准确时很好。相反,DPI可以帮助任何查看图像的人看看DPI是什么。在图像中更改它是徒劳的,因为它实际上不会改变图像的分辨率。
分辨率取决于图像的大小(图像中卡住了多少像素)。
Here是关于位图的好文章。