Jes*_*osh 2 html python google-app-engine image python-imaging-library
我正在使用带有Python和Jinja的Google App Engine作为模板.在我的HTML模板中,我有这段代码,允许用户选择一个文件(Image):
<form action="/step2" enctype="multipart/form-data" method="post">
<input type="file" name="datafile" size="40">
<input type="submit" value="upload" >
</form>
Run Code Online (Sandbox Code Playgroud)
发布后,我可以通过self.request.get('datafile')获取图像,这似乎是二进制数据类型('str').我把它放到一个数据库中,我可以用以下方法显示:
self.response.out.write('<div><img src="img?img_id=%s"></img>' % userimages.key())
Run Code Online (Sandbox Code Playgroud)
我正在努力找到一种方法将其转换为PIL.Image数据类型,以便用它进行图像处理.提前致谢!
将字符串放在一个StringIO对象中:
from cStringIO import StringIO
imgfile = StringIO(self.request.get('datafile'))
img = Image.open(imgfile)
Run Code Online (Sandbox Code Playgroud)
所有PIL需求都是一个类似文件的对象; StringIO为此源提供给定字符串的实际数据.
在另一个方向,PIL写入一个StringIO对象,但你需要指定使用的格式:
imgfile = StringIO()
img.save(imgfile, format='PNG')
imagestring = imgfile.getvalue()
Run Code Online (Sandbox Code Playgroud)