Javascript 使用python将base64字符串转换为png图像
我正在开发一个Django应用程序,用户可以使用javascript触发网络摄像头并抓拍图片。这张图片存储在画布中。我想用python将此图像作为base64字符串检索,将其转换为png文件并保存到Django服务器中。这是到目前为止我的代码 HTML模板Javascript 使用python将base64字符串转换为png图像,javascript,python,django,base64,Javascript,Python,Django,Base64,我正在开发一个Django应用程序,用户可以使用javascript触发网络摄像头并抓拍图片。这张图片存储在画布中。我想用python将此图像作为base64字符串检索,将其转换为png文件并保存到Django服务器中。这是到目前为止我的代码 HTML模板 <center> <button type="button" name="button" class='btn btn-outline-dark btn-lg' id='start'>Start Video C
<center>
<button type="button" name="button" class='btn btn-outline-dark btn-lg' id='start'>Start Video Capture</button>
<div class="container-fluid mt-2">
<video id="video" width="640" height="480" autoplay></video><br>
<button type="button" data-toggle="modal" data-target="#image_model" class="btn btn-lg btn-dark" id="snap">Snap Photo</button>
</div>
</center>
<center>
<canvas id="canvas" width="640" height="480"></canvas>
</center>
<button type="button" class="btn btn-secondary" data-dismiss="modal">Retake</button>
<form class="image_to_server" action="{% url 'img_submit' %}" method="post">
{% csrf_token %}
<input type="text" name="base64Field" value="" id='base64'>
<input type="submit" value="Use Image" class="btn btn-primary" id="use_image">
</form>
Django views.py
def img_submit(request):
if request.method == 'POST':
data = request.POST.get('base64Field')
byte_data = base64.b64decode(data)
image_data = BytesIO(byte_data)
img = Image.open(image_data)
return HttpResponse(data)
我得到了一个python代码的“错误填充错误”。我不确定我做错了什么。或者如何纠正这个错误
我按照这个编写python代码。您没有从字符串中删除头,这意味着它不仅仅是b64数据
如果您查看示例,您将看到以下几行
import re
base64_data = re.sub('^data:image/.+;base64,', '', data)
删除标题后,您应该能够将字符串用作b64
我说的标题看起来像这样
data:image/png;base64,
如错误所述,检查填充(确保b64字符串正确)。请注意,它在您提供的链接中被编辑了一点。我将数据直接从js发送到django,而之前没有对其进行任何处理。所以我不确定base64字符串怎么可能是错误的。有什么帮助吗???打印并查看它,甚至将它(标记为代码)添加到您的问题中,这样我们就可以查看它您希望我打印整个base64字符串吗。我是初学者,还不懂base64。我也无法将整个base64字符串添加到StackOverflow。您也可以打印它并提供链接
import re
base64_data = re.sub('^data:image/.+;base64,', '', data)