programing

Pillow를 사용하여 png을 JPEG로 변환

mailnote 2023. 5. 16. 22:51
반응형

Pillow를 사용하여 png을 JPEG로 변환

베개를 이용하여 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

내가 뭘 잘못하고 있는 거지?

convert() 메서드를 사용해야 합니다.

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

이 이미지의 문제는 크기가 크다는 것이 아니라 RGB가 아니라는 것입니다. 특히 인덱스 이미지입니다.여기에 이미지 설명 입력

셸을 사용하여 변환한 방법은 다음과 같습니다.

>>> 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 블록에 붙여넣고 하드 코딩으로 jpeg로 저장하고 있다는 것입니다.당신은 실제로 png을 jpeg로 변환하는 것이 아닙니다.

크기 조정과 함께 변환하려면 이 작업을 수행하십시오.

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')

그게 다야..크기 조정 및 변환된 이미지가 동일한 위치에 저장됩니다.

언급URL : https://stackoverflow.com/questions/43258461/convert-png-to-jpeg-using-pillow

반응형