在Python中更改.bmp文件的图像分辨率
我想在Python中改变.bmp图片的分辨率(也就是每英寸的像素信息)。比如说,使用PIL库处理jpg图片时,下面这段代码就能很好地工作。
import Image
im = Image.open("myImg.jpg)
im.save("output.jpg", dpi = (75, 75) )
如果你在一些图像编辑软件,比如GIMP中查看这张图片,它会显示每英寸75像素。
但是,当输入的图片是.bmp格式时,上面的代码就不管用了。
有人能告诉我怎么在Python中改变任何图片的分辨率吗?
2 个回答
0
我觉得输入文件可以是任何有效的格式,而输出文件需要是 jpg、pcx、png、tiff 或 wmf 格式。至于 dpi 参数,我觉得可能是这样,但我可能错了。不过,当我查看 PIL 的源代码时,没看到有关于 BMP 文件的处理。
2
我怀疑市面上很少有程序能正确处理bmp的分辨率。Windows的位图都是96 dpi。
而且,看起来PIL(Python Imaging Library)并不支持位图的分辨率参数。我的PIL/BmpImagePlugin.py
文件只是把x和y的分辨率写成$01000000(我不太确定这个数字代表什么,但我猜是“96 dpi”)。
有一些文档告诉你如何编写自己的扩展……我猜制作一个接受分辨率作为参数的PIL位图插件应该会很简单。