如何在Python图像库中导出每像素16位图像位图?

时间:2017-11-06 22:03:33

标签: image python-3.x bitmap

我正在尝试将一组24位每像素位图文件转换为16位每像素图像。

环顾四周之后,Python的图片库(PIL)似乎可以做到,但到目前为止,我只能进行8或24位图片导出。我需要每个颜色5位,每通道5位和1位。我应该使用什么转换方法?这是我的代码:

import os
from PIL import Image

file_list = []

location = "C:/bad_images"
os.chdir(location)

for file in os.listdir(location):
    if file.endswith(".bmp"):
        BMP_file = os.path.basename(file)
        print(os.path.join("/mydir", file))
        ##im = Image.open(BMP_file).convert("RGB", colors = 256) ##Does not 
  work  Nor does L
        im = Image.open(BMP_file).convert("P", colors = 256)
        im.save('converted/' + BMP_file)

此脚本吐出的图像为8位颜色。我找不到任何16位格式的例子。谢谢!

1 个答案:

答案 0 :(得分:1)

输入您的代码

im = Image.open(BMP_file).convert("P", colors = 256)
        im.save('converted/' + BMP_file)

尝试使用:

im = Image.open(BMP_file).convert("PA", colors = 256)
        im.save('converted/' + BMP_file)

im = Image.open(BMP_file).convert("PA;L", colors = 256)
        im.save('converted/' + BMP_file)

“ P”为8位,但“ PA”应为16。 此文件底部附近有一个列表,列出要使用的转换字母。 http://svn.effbot.org/public/pil/libImaging/Unpack.c

您还要求我不熟悉5x5x5x1的位格式,我见过5x6x5或4x4x4x4格式。