pillow的Image類型和字符串IO互相轉換

前幾天碰到這麼個問題,讀取的圖片數據是經過請求傳遞過來的python

image_data = request.files['xxxx'].stream.read()

 這麼一來image_data類型是str類型。直接用PIL.Image.save()就會出錯。spa

後來問了下頭兒才知道能夠這麼寫:code

    import StringIO
    buffer = StringIO.StringIO('buffer')
    buffer.write(imagedata)
    image_data = Image.open(buffer)

  將讀到的stringIO存到buffer緩衝區中,而後在用Image.open方法去讀取這樣讀取到的就是Image類型了blog

並且內存緩衝區速度要比硬盤快,比先保存成圖片文件在用Pillow打開效率要高圖片

 

若要是Image類型,轉換成字符串IO:內存

import StringIO
buffer = StringIO.StringIO('buffer');
image_data.save(buffer,'PNG')
str_data = buffer.getvalue()

這樣就能將Image類型的image_data轉換成字符串IO的str_data了字符串

相關文章
相關標籤/搜索