Python和PIL处理GIF和JPEG像素值不同
我有一个关于用PIL加载图片时返回的像素值的问题。我使用了以下代码:
frame = Image.open(fname).load()
a = frame[10, 10]
如果我加载一张GIF图片,a
的值是整数43。但是如果我把这张图片转换成JPEG格式再运行代码,a
就变成了一个元组(253, 254, 100)
。
这是为什么呢?我该如何把(253, 254, 100)
转换回43呢?
1 个回答
8
GIF图片使用调色板,也就是一组颜色,而JPEG图片则是用RGB颜色模式,也就是红、绿、蓝三种颜色的组合。当你对GIF图片进行处理时,调色板会被丢弃,所以你需要查看GIF中的颜色列表,找到和你想要的颜色最接近的那个。