내가 노력으로 변환 png jpeg 를 사용하여 베개입니다. 나는've tried 여러 scrips 다. 이러한 2 듯 작동에 작은 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)
하지만 만약 내가 변환하려고 큰 이미지 다음과 같이나
나는'm
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
무엇이 잘못된 것입니까?
당신이 사용해야 하는 변환()메소드:
from PIL import Image
im = Image.open("Ba_b_do8mag_c6_big.png")
rgb_im = im.convert('RGB')
rgb_im.save('colors.jpg')
더 많은 정보:http://pillow.readthedocs.io/en/latest/reference/Image.html#PIL.Image.Image.convert
문제는 이미지가 아't's 큰,그것은 그것이 아't RGB,구체적으로는's 는 인덱스를 이미지입니다.
여기's how I 변환 그것은 셸을 사용:
>>> from PIL import Image
>>> im = Image.open("Ba_b_do8mag_c6_big.png")
>>> im.mode
'P'
>>> im = im.convert('RGB')
>>> im.mode
'RGB'
>>> im.save('im_as_jpg.jpg', quality=95)
그래서 추가 확인에 대한 모드의 이미지에서 당신의 코드:
if not im.mode == 'RGB':
im = im.convert('RGB')
변환할 수 있습의 열 이미지로 RGB 그리고 당신은 그것을 저장할 수 있습니다 어떤 형식입니다. 코드가 됩니다:
from PIL import Image
im = Image.open("image_path")
im.convert('RGB').save("image_name.jpg","JPEG") #this converts png image as jpeg
당신이 원하는 경우 사용자 지정 크기의 이미지를 그냥 이미지 크기를 조정하는 동안 열고 다음과 같다:
im = Image.open("image_path").resize(x,y)
한 다음 변환하 RGB 및 저장합니다.
문제 코드에 당신은 붙여넣기 png 로 RGB 블록 및 저장을 이용하여 하드 코딩이다. 당신이 실제로 변환하 png 하세스 포인트가 필요합니다.