2015-08-05 12 views
11

Ich versuche ein base64-kodiertes Bild so zu manipulieren, dass es um 90 ° gedreht wird. Nach dieser Manipulation möchte ich es zurück in base64 string konvertieren. Das ist aber leider noch nicht möglich. HierWie konvertiert man PIL Image.image Objekt in Base64 String?

ist, was ich bisher getan haben:

image_string = StringIO(base64.b64decode(base64_string_here)) 
image = Image.open(image_string) 
angle = 90 
rotated_image = image.rotate(angle, expand=1) 

Kindy mir helfen, wie diese rotated_image zu Base64 Zeichenfolge zu konvertieren.

hier ist das dir() von rotated_image:

[ '_Image__transformer', '__doc__', '__getattr__', '__init__', '__module__', '__repr__', '_copy', '_dump', ' _expand ',' _makeself ','new', 'category', 'konvertieren', 'kopieren', 'crop', 'draft', 'filter', 'format', 'format_description', 'fromstring', 'getbands' "getbbox", "getcolors", "getdata", "getextrema", "gettim", "getpalette", "getpixel", "getprojection", "histogram", "im", "info", "load", " modus ',' offset ',' palette ',' einfügen ',' punkt ',' putalpha ',' putdata ',' putpalette ',' putpixel ',' quantisieren ',' readonly ',' resize ',' rotieren ' , "speichern", "suchen", "zeigen", "Größe", "teilen", "erzählen", "thumbnail", "tobitmap", "tostring", "transformieren", "transponieren", "verifizieren"]

Antwort

32

Python 3

import base64 
from io import BytesIO 

buffered = BytesIO() 
image.save(buffered, format="JPEG") 
img_str = base64.b64encode(buffered.getvalue()) 

Python 2

import base64 
import cStringIO 

buffer = cStringIO.StringIO() 
image.save(buffer, format="JPEG") 
img_str = base64.b64encode(buffer.getvalue()) 
+17

Ich möchte, dass in python3.4 sagen, sollten Sie 'von io Import BytesIO' schreiben und' Puffer = BytesIO() '. Denken Sie auch daran, dass 'buffer' bereits ein eingebauter Name ist (benutzen Sie' buffered' vielleicht). [Die schönen Dokumente] (https://docs.python.org/3/library/io.html#binary-i-o). – Paolo

Verwandte Themen