我试图转换png到jpeg使用枕头。我已经尝试了几个脚本没有成功。这两个似乎工作在小png图像像这一个。
的数据
第一个代码:
from PIL import Image
import os, sys
im = Image.open("Ba_b_do8mag_c6_big.png")
bg = Image.new("RGB", im.size, (255,255,255))
bg.paste(im,im)
bg.save("colors.jpg")
字符串
第二个代码:
image = Image.open('Ba_b_do8mag_c6_big.png')
bg = Image.new('RGBA',image.size,(255,255,255))
bg.paste(image,(0,0),image)
bg.save("test.jpg", quality=95)
型
但如果我试着把一张像这样的大一点的图片
的
我要
Traceback (most recent call last):
File "png_converter.py", line 14, in <module>
bg.paste(image,(0,0),image)
File "/usr/lib/python2.7/dist-packages/PIL/Image.py", line 1328, in paste
self.im.paste(im, box, mask.im) ValueError: bad transparency mask
型
我做错了什么?
4条答案
按热度按时间xpcnnkqh1#
使用
convert()
方法:字符串
更多信息:http://pillow.readthedocs.io/en/latest/reference/Image.html#PIL.Image.Image.convert
j2cgzkjk2#
该图像的问题不在于它太大,而在于它不是RGB,特别是它是一个索引图像。
下面是我如何使用shell转换它:
字符串
因此,在代码中添加一个检查图像的模式:
型
ocebsuys3#
您可以将打开的图像转换为RGB,然后可以将其保存为任何格式。代码如下:
字符串
如果你想自定义大小的图像,只是调整图像,而像这样打开:
型
然后转换为RGB并保存。
你的代码的问题是,你是粘贴到RGB块的PNG和保存为硬编码JPEG。你实际上没有转换PNG到JPEG。
ttp71kqs4#
如果你想转换沿着调整大小,
字符串
就是这样。.您的大小和转换后的图像将存储在同一位置