변환 png jpeg 를 사용하여 베개

내가 노력으로 변환 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

무엇이 잘못된 것입니까?

질문에 대한 의견 (2)
해결책

당신이 사용해야 하는 변환()메소드:

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

해설 (3)

문제는 이미지가 아'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')
해설 (0)

변환할 수 있습의 열 이미지로 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 하세스 포인트가 필요합니다.

해설 (2)

로 변환하려는 경우와 함께 크기를 조정한 다음 이

from PIL import Image

img = i.open('3-D Tic-Tac-Toe (USA).png').resize((400,400)) # (x,y) pixels
img.convert("RGB").save('myimg.jpg')

thats it..의 크기와 변환된 이미지를 저장에서 동일한 위치

해설 (0)