我在Flask中创建了一个简单的API,它接受在base64中编码的图像,然后将其解码以便使用Pillow进行进一步处理.
我看了一些例子(1,2,3),我觉得我得到的过程的要点,但我不断收到一个错误的枕头无法读取我给它的字符串.
这是我到目前为止所得到的:
import cStringIO
from PIL import Image
import base64
data = request.form
image_string = cStringIO.StringIO(base64.b64decode(data['img']))
image = Image.open(image_string)
Run Code Online (Sandbox Code Playgroud)
这给出了错误:
IOError: cannot identify image file <cStringIO.StringIO object at 0x10f84c7a0>
Run Code Online (Sandbox Code Playgroud) 我正在离子框架中工作。目前正在设计一个包含文本和图像的帖子页面。用户可以在那里发布数据和图像,所有这些都是安全的。
因此,我使用 Base 64 编码并将图像保存在数据库中。
encodeURIComponent($scope.image)
Run Code Online (Sandbox Code Playgroud)
每次当用户请求时,我从表中选择行并将它们与文本一起显示并对其进行解码。
decodeURIComponent($scope.image)
Run Code Online (Sandbox Code Playgroud)
与 HTML"data:image/jpeg;base64,_______"转换。
工作正常,但花费了我预期的时间。因此,图像尺寸增大了 33%,并且看起来完全凸起。
然后我决定继续使用cordova的文件上传插件。但我意识到,以这种方式维护文件风险很大,而且很复杂。我还尝试将二进制数据保存到数据库中。但失败了。
没有 Base64 数据的文本选择大大减少了时间。在选择其他列并显示后,是否可以在另一个 http 调用中单独选择图像。这是处理安全图像的正确机制吗?