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

发布于 2024-11-03 06:54:27 字数 293 浏览 7 评论 0原文

我对使用 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

毁我热情 2024-11-10 06:54:27

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.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文