Converting jpeg string to PIL image object

前端 未结 3 1511
一生所求
一生所求 2021-01-04 10:32

I\'ve been handed a list of files from the backend of an application that are supposed to be jpeg files. However for the life of me I haven\'t been able to convert them into

相关标签:
3条回答
  • 2021-01-04 11:13

    The same thing but a bit simpler

    from PIL import Image
    import io
    Image.open(io.BytesIO(image))
    

    Note:

    If image is on the web; you need to download it first.

    import requests
    image = requests.get(image_url).content  #download image from web
    

    And then pass it to io module.

    io.BytesIO(image)
    

    If image is in your hd; you can open directly with PIL.

    Image.open('image_file.jpg')  #image in your HD
    
    0 讨论(0)
  • 2021-01-04 11:16

    For me, none of the solutions above worked.

    I finally managed to read the string properly like this:

    from PIL import Image
    img = Image.frombytes('RGB', (640, 480), img_str, 'raw')
    

    To test it, you can do something like

    image = Image.open("some.png")
    print(image.mode, image.size) # OUT: 'RGB' (640, 480)
    image = Image.frombytes('RGB', (640, 480), image.tobytes(), 'raw')
    image.show()
    
    0 讨论(0)
  • 2021-01-04 11:17

    You should be able to pass a StringIO object to PIL and open it that way.

    ie:

    from PIL import Image
    import StringIO
    tempBuff = StringIO.StringIO()
    tempBuff.write(curimg)
    tempBuff.seek(0) #need to jump back to the beginning before handing it off to PIL
    Image.open(tempBuff)
    
    0 讨论(0)
提交回复
热议问题