Convert png to jpeg using Pillow

后端 未结 4 2005
陌清茗
陌清茗 2020-11-28 06:45

I am trying to convert png to jpeg using pillow. I\'ve tried several scrips without success. These 2 seemed to work on small png images like this one.

First

相关标签:
4条回答
  • 2020-11-28 07:24

    if you want to convert along with resize then try this,

    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.. your resized and converted image will store in same location

    0 讨论(0)
  • 2020-11-28 07:29

    The issue with that image isn't that it's large, it is that it isn't RGB, specifically that it's an index image.

    Here's how I converted it using the shell:

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

    So add a check for the mode of the image in your code:

    if not im.mode == 'RGB':
      im = im.convert('RGB')
    
    0 讨论(0)
  • 2020-11-28 07:33

    You should use convert() method:

    from PIL import Image
    
    im = Image.open("Ba_b_do8mag_c6_big.png")
    rgb_im = im.convert('RGB')
    rgb_im.save('colors.jpg')
    

    more info: http://pillow.readthedocs.io/en/latest/reference/Image.html#PIL.Image.Image.convert

    0 讨论(0)
  • 2020-11-28 07:38

    You can convert the opened image as RGB and then you can save it in any format. The code will be:

    from PIL import Image
    im = Image.open("image_path")
    im.convert('RGB').save("image_name.jpg","JPEG") #this converts png image as jpeg
    

    If you want custom size of the image just resize the image while opening like this:

    im = Image.open("image_path").resize(x,y)
    

    and then convert to RGB and save it.

    The problem with your code is that you are pasting the png into an RGB block and saving it as jpeg by hard coding. you are not actually converting a png to jpeg.

    0 讨论(0)
提交回复
热议问题