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
'programing' 카테고리의 다른 글
| 마케팅 아이콘 누락 (0) | 2023.05.16 |
|---|---|
| init와 init의 편리함의 차이는 무엇입니까? 더 빠르고 명확한 예에서 init가 더 낫습니다. (0) | 2023.05.16 |
| 윈도우에서 커피스크립트? (0) | 2023.05.16 |
| 명령줄에서 데이터베이스 만들기 (0) | 2023.05.16 |
| POI실적 (0) | 2023.05.16 |
