GIF和JPEG的Python和PIL像素值不同

ale*_*lex 7 python jpeg gif python-imaging-library

我有一个关于从PIL加载函数打开的图像返回的像素值的问题.我使用以下代码:

frame = Image.open(fname).load()
a = frame[10, 10]
Run Code Online (Sandbox Code Playgroud)

如果我加载GIF图像,a则是整数值43.但是如果我将图像转换为JPEG并重新运行代码,a则是一个元组(253, 254, 100).

为什么?我怎么能转换(253, 254, 100)回43?

谢谢.

Ign*_*ams 8

GIF是托盘化的,而JPEG是RGB.转换图像的行为处理调色板,因此您必须查看GIF中的调色板条目以找到与所需颜色最接近的匹配.