gpt4 book ai didi

python - PIL jpeg,如何保留像素颜色

转载 作者:太空狗 更新时间:2023-10-30 02:47:52 27 4
gpt4 key购买 nike

我对 JPEG 进行了一些实验,the doc说“100 完全禁用 JPEG 量化阶段。”

但是,我在保存过程中还是得到了一些像素修改。这是我的代码:

import Image
red = [20,30,40,50,60,70];
img = Image.new("RGB", [1, len(red)], (255,255,255))
pix = img.load()

for x in range(0,len(red)):
pix[0,x] = (red[x],255,255)

img.save('test.jpg',quality=100)

img = Image.open('test.jpg')
pix = img.load()

for x in range(0,len(red)):
print pix[0,x][0],

我得到了意外的输出:22 25 42 45 62 65我应该怎么做才能保留像素值?请注意,我还尝试使用 PHP 使用 imagejpeg当 quality=100 时它给了我正确的值。

我可以使用 png 来保存,但我想知道这背后的原因以及是否有任何选择可以避免

最佳答案

JPEG 由许多不同的步骤组成,其中许多步骤会引入一些损失。通过使用仅包含红色的示例图像,您可能遇到了最严重的违规者 - downsampling or chroma subsampling .一半的颜色信息被丢弃,因为眼睛对亮度变化比颜色变化更敏感。

一些 JPEG 编码器可以通过设置 subsampling=0 来配置关闭子采样,包括 PIL 和 Pillow .在任何情况下,它都不会为您提供完全无损的文件,因为还有其他步骤会导致丢失。

关于python - PIL jpeg,如何保留像素颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15481062/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com