如何在python中将24色bmp图像转换为16色bmp

时间:2015-09-01 05:08:16

标签: python python-2.7 python-imaging-library

对于我目前的任务,我需要将24色bmp转换为16色bmp文件。并在pdf文件中打印图像。我厌倦了使用PIL模块,但它没有帮助我。

from PIL import Image

path = r'C:\Display_Icon_Testing\Captured_Images\Impl_Modulation_Screen.bmp'

im = Image.open(path)
print im
im1 = Image.open(path).convert('P')
print im1

请帮助我。

1 个答案:

答案 0 :(得分:1)

下面的代码将以PIL理解的任何格式读取图像,将其转换为16种颜色,并将其另存为PDF文件。默认情况下,PIL使用Floyd-Steinberg dithering来改善将24位图像转换为基于调色板的图像时的图像质量。

我正在使用PIL的Pillow分叉,因为不再维护原始PIL,但此代码应该可以在原始PIL或Pillow上正常工作。

from PIL import Image

iname = 'test.bmp'
oname = 'test.pdf'

img = Image.open(iname)
newimg = img.convert(mode='P', colors=16)
newimg.save(oname)