我正在尝试将一组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位格式的例子。谢谢!
答案 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格式。