我正在尝试创建一个简单的脚本,将目录中的所有tiff图像转换为jpg,但是我收到了这个错误:
无法将RGBA模式写为JPEG
这是我的代码:
import os
from PIL import Image
yourpath = os.getcwd()
for root, dirs, files in os.walk(yourpath, topdown=False):
for name in files:
print(os.path.join(root, name))
if os.path.splitext(os.path.join(root, name))[1].lower() == ".tiff":
if os.path.isfile(os.path.splitext(os.path.join(root, name))[0] + ".jpg"):
print ("A jpeg file already exists for %s" % name)
# If a jpeg is *NOT* present, create one from the tiff.
else:
outfile = os.path.splitext(os.path.join(root, name))[0] + ".jpg"
try:
im = Image.open(os.path.join(root, name))
print ("Generating jpeg for %s" % name)
im.thumbnail(im.size)
im.save(outfile, "JPEG", quality=100)
except Exception as e:
print (e)
知道怎么解决吗?
答案 0 :(得分:0)
RGBA代表"红色,绿色,蓝色,alpha",其中alpha是不透明度(允许部分透明的图像)。 JPEG不支持Alpha通道,因此您必须执行以下转换:
im = im.convert("RGB")
我假设您的输入图像都不是灰度图像,或者如果它们不是,您也不介意将它们转换为RGB图像。否则,请在转换前检查im.mode
。
答案 1 :(得分:0)
有点晚了,但是可以正常工作
im.convert("RGB").save(outfile, "JPEG", quality=100)