使用PIL(1.1.7)创建的JPEG图像质量非常差。这是一个例子:
输入:https://s23.postimg.cc/8bks3x5p7/cover_1.jpg
输出:https://s23.postimg.cc/68ey9zva3/cover_2.jpg
使用以下代码创建输出图像:
from PIL import Image
im = Image.open('/path/to/cover_1.jpg')
im.save('/path/to/cover_2.jpg', format='JPEG', quality=100)
红色文字看起来非常糟糕。使用GIMP或Photoshop保存图像甚至不能接近PIL创建的质量差。 有人知道为什么会这样,以及如何解决它?
答案 0 :(得分:34)
JPEG质量有两个部分。第一个是quality
设置,您已将其设置为最高可能值。
JPEG也使用chroma subsampling,假设色调变化不如亮度变化重要,并且可以安全地丢弃某些信息。不幸的是,在要求苛刻的应用中,这并不总是正确的,你最容易在红色边缘注意到这一点。 PIL没有公开记录的设置来控制这方面。
由Pascal Beyeler编辑:
我刚刚找到一个禁用子采样的选项。保存图像时可以设置subsampling=0
,图像看起来更清晰!谢谢你的帮助标记!
im.save('/path/to/cover-2.jpg', format='JPEG', subsampling=0, quality=100)