对于我目前的任务,我需要将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
请帮助我。
答案 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)