如何将PIL Image.image对象转换为base64字符串?

问题描述:

我正在尝试以一种90度的角度旋转base64编码的图像.完成此操作后,我想将其转换回base64字符串.但不幸的是无法实现这一目标.

I am trying to manipulate a base64 encoded image in such a way as to rotate it at 90 angle. After this manipulation, I want to convert it back to base64 string. But unfortunately unable to achieve this yet.

这是我到目前为止所做的:

Here is what I have done so far:

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

Kindy帮助我如何将旋转的图像转换为base64字符串.

Kindy help me how to convert this rotated_image to base64 string.

这是旋转图像的dir():

['_ Image__transformer','__ doc __','__ getattr __','__ init__', '__module __','__ repr __','_ copy','_ dump','_ expand','_ makeself', '_new','category','convert','copy','crop','draft','filter', 'format','format_description','fromstring','getbands','getbbox', 'getcolors','getdata','getextrema','getim','getpalette', 'getpixel','getprojection','histogram','im','info','load', 'mode','offset','palette','paste','point','putalpha','putdata', 'putpalette','putpixel','quantize','readonly','resize','rotate', 保存",搜索",显示",大小",分割",告诉",缩略图", 'tobitmap','tostring','transform','transpose','verify']

['_Image__transformer', '__doc__', '__getattr__', '__init__', '__module__', '__repr__', '_copy', '_dump', '_expand', '_makeself', '_new', 'category', 'convert', 'copy', 'crop', 'draft', 'filter', 'format', 'format_description', 'fromstring', 'getbands', 'getbbox', 'getcolors', 'getdata', 'getextrema', 'getim', 'getpalette', 'getpixel', 'getprojection', 'histogram', 'im', 'info', 'load', 'mode', 'offset', 'palette', 'paste', 'point', 'putalpha', 'putdata', 'putpalette', 'putpixel', 'quantize', 'readonly', 'resize', 'rotate', 'save', 'seek', 'show', 'size', 'split', 'tell', 'thumbnail', 'tobitmap', 'tostring', 'transform', 'transpose', 'verify']

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