Sol*_*ist 2 python base64 json flask gcp
感谢任何可以帮助您解决此问题的人,这是我的第一个问题,希望它不是很明显。
我有一个图像作为base64字符串(使用苗条的图像裁剪器)传递。我想将其转换为文件,然后将其作为Blob发送到Google Storage。
以前我只是发送如下文件
image = request.files.get('image')
client = _get_storage_client()
bucket = client.bucket(current_app.config['CLOUD_STORAGE_BUCKET'])
blob = bucket.blob(filename)
blob.upload_from_string(
image.read(),
content_type=content_type)
Run Code Online (Sandbox Code Playgroud)
现在,我正在处理以下代码。
cropped_image = json.loads(request.form.get('slim[]'))
data = cropped_image['output']['image']
Run Code Online (Sandbox Code Playgroud)
数据变量是一个字符串:
data = 'data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wBD...'
Run Code Online (Sandbox Code Playgroud)
我不确定我是否需要编码为base64,从base64解码,将其转换为字节串,然后进行编码/解码?
我已经尝试过使用bytesIO和StringIO按原样发送它
image = BytesIO(data)
blob.upload_from_string(
image.read(),
content_type=content_type)
Run Code Online (Sandbox Code Playgroud)
我上传了一张黑色图片,真的尝试不先研究就不要问问题,但是这个让我很困惑。
谢谢。
re.sub("data:image/jpeg;base64,", '', b64_str).decode("base64")在Python2中工作。在PY 2,str是bytes实际。
更新
from base64 import b64decode
with open("test.jpeg", 'wb') as f:
f.write(b64decode(re.sub("data:image/jpeg;base64,", '', b64_str)))
# or
image = BytesIO(b64decode(re.sub("data:image/jpeg;base64", '', b64_str)))
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2440 次 |
| 最近记录: |