无法将模式 RGBA 写入 JPEG
Posted
技术标签:
【中文标题】无法将模式 RGBA 写入 JPEG【英文标题】:cannot write mode RGBA as JPEG 【发布时间】:2018-06-23 05:21:13 【问题描述】:我正在学习使用 '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
没有这样的 书中有错误。
【问题讨论】:
被骗的答案不是 100% 的骗子,但会帮助您解决问题 - 我的回答是您收到此错误的原因 我支持这个。这个问题专门指如何解决该异常。我在没有使用 PNG 的情况下遇到了这个问题,所以否则不会找到它。 【参考方案1】:JPG
不支持透明度 - RGBA
表示 Red
、Green
、Blue
、Alpha
- Alpha
是 透明度 .
您需要丢弃 Alpha
频道或另存为支持透明度的内容 - 例如 PNG
。
Image
类有一个方法convert
,可用于将RGBA
转换为RGB
- 之后您将能够保存为JPG
。
看看这里:the image class doku
im = Image.open("audacious.png")
rgb_im = im.convert('RGB')
rgb_im.save('audacious.jpg')
改编自 dm2013 对Convert png to jpeg using Pillow的回答
【讨论】:
正如@timop 建议的in this answer,更有效的方法是在转换为RGB 之前先检查其是否为RGBA/P 格式:if im.mode in ("RGBA", "P"): im = im.convert("RGB")
@Prahlad 如果你不知道你有 RGBA 很好 - 这个问题使用 RGBA 开头以上是关于无法将模式 RGBA 写入 JPEG的主要内容,如果未能解决你的问题,请参考以下文章
对 JPG 图像进行操作时出现“无法将模式 P 写入 JPEG”
在 iOS 上从两个 jpeg 加载 RGBA 图像 - OpenGL ES 2.0
Python pillow模块出现cannot write mode RGBA as JPEG问题的解决方法