开发者

How do I re-set a BMP file's resolution (DPI) indicator?

I have a BMP tagged as 299 DPI resolution. I'd like to change that to 99 DPI.

Importantly, the DPI marker in a BMP has no structural meaning. An image has a certain width 开发者_Go百科and height in pixels. The displaying application can show the image at any width in inches.

So, the DPI is just a hint.

However, I am dealing with some third-party software which behaves differently depending on this marker, so I need to re-set it.

I will appreciate suggestions on how to do this programmatically in Java, as well as in GUI graphics tools (e.g. Gimp).


for the Java part, you can use the img4j library. You have an encoder and a decoder for BMP. The InfoHeader class has a iXpixelsPerM and iYpixelsPerM to set the resolution. You chan check the BMP file format here to have more information.

Moreover, as the library is opensource, you'll be able to check and understand how the code is working and you'll be able to adapt it to fit your needs (if it complies with your licensing model).

(Happy New Year! :)


In .Net you can set the DPI property of an image using the SetResolution method of the Bitmap class. Unfortunately I don't know how you can do it in Java. [Update the initial question asked for "how to do this programmatically (especially in Java)", this is why I mentioned the .Net solution.]

And here is how you can change the resolution property in GIMP: http://docs.gimp.org/en/gimp-image-print-size.html
In Paint .Net (free .Net based image editing tool) you would go to Image -> Resize -> Modify the resolution field.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜