GIF 和 JPEG 的 Python 和 PIL 像素值不同
我对使用 PIL 加载函数打开的图像返回的像素值有疑问。我使用以下代码:
frame = Image.open(fname).load()
a = frame[10, 10]
如果我加载 GIF 图像,a
是整数值 43。但是如果我将图像转换为 JPEG 并重新运行代码,a
是一个元组(253, 254, 100)
。
为什么?我如何将 (253, 254, 100)
转换回 43?
I have a question about the pixel values returned from an image opened with PIL load function. I am using the following code:
frame = Image.open(fname).load()
a = frame[10, 10]
If I load a GIF image, a
is the integer value 43. But if I convert the image a JPEG and rerun the code, a
is a tuple (253, 254, 100)
.
Why? And how can i convert (253, 254, 100)
back to 43?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
GIF 是调色板的,而 JPEG 是 RGB 的。转换图像的操作会处理调色板,因此您必须浏览 GIF 中的调色板条目才能找到与所需颜色最接近的匹配项。
GIFs are pallettized, whereas JPEGs are RGB. The act of transforming the image disposes of the palette, so you will have to look through the pallette entries in the GIF to find the closest match to the desired color.