无法将 RGBA 模式写入 JPEG

问题描述 投票:0回答:2

我正在学习使用“pillow 5.0”,跟随《用 python 自动执行无聊的事情》一书

有关图像对象的信息

In [79]: audacious = auda
In [80]: print(audacious.format, audacious.size, audacious.mode)
PNG (1094, 960) RGBA

当我尝试转换文件类型时,它报告错误。

In [83]: audacious.save('audacious.jpg')
OSError: cannot write mode RGBA as JPEG

没有这样的 书上有错误。

python python-imaging-library python-3.6
2个回答
273
投票

JPG
不支持透明 -
RGBA
表示
Red
Green
Blue
Alpha
-
Alpha
透明

您需要丢弃

Alpha
通道或另存为支持透明度的内容 - 例如
PNG

Image
类有一个方法
convert
,可用于将
RGBA
转换为
RGB
- 之后您将能够另存为
JPG

看看这里:图像类doku

im = Image.open("audacious.png")
rgb_im = im.convert('RGB')
rgb_im.save('audacious.jpg')

改编自 dm2013 的答案 Convert png to jpeg using Pillow


0
投票

您只能使用

.png
模式在
RGBA

中保存图像
im = Image.open("audacious.jpg")
rgb_im = im.convert('RGBA')
rgb_im.save('audacious.png')
© www.soinside.com 2019 - 2024. All rights reserved.