当前位置: 首页 > 面试题库 >

将Base64字符串加载到Python图像库中

申屠喜
2023-03-14
问题内容

我通过ajax将图像作为base64字符串发送到django。在我的django视图中,我需要调整图像大小并将其保存在文件系统中。

这是一个base64字符串(简体):

data:image/jpeg;base64,/9j/4AAQSkZJRg-it-keeps-going-for-few-more-lines=

我尝试使用以下python代码在PIL中打开此文件:

img = cStringIO.StringIO(request.POST['file'].decode('base64'))
image = Image.open(img)
return HttpResponse(image, content_type='image/jpeg')

我正在尝试将上传的图像显示回去,但是firefox抱怨说 'The image cannot be displayed because it contains error'

我不知道我的错误。

解:

pic = cStringIO.StringIO()

image_string = cStringIO.StringIO(base64.b64decode(request.POST['file']))

image = Image.open(image_string)

image.save(pic, image.format, quality = 100)

pic.seek(0)

return HttpResponse(pic, content_type='image/jpeg')

问题答案:

解:

将打开的PIL图像保存到类似文件的对象即可解决此问题。

pic = cStringIO.StringIO()
image_string = cStringIO.StringIO(base64.b64decode(request.POST['file']))
image = Image.open(image_string)
image.save(pic, image.format, quality = 100)
pic.seek(0)
return HttpResponse(pic, content_type='image/jpeg')


 类似资料:
  • 问题内容: 我正在尝试使用jQuery插件即crop.js裁剪/调整用户个人资料图像的大小,该插件通过ajax将用户图像作为base64发送给我的控制器 但我无法解码此base64 字符串作为图像,你们可以指导我如何将base64字符串作为图像保存在服务器上吗? 问题答案: 假设有几件事,您知道输出文件名是什么,并且您的数据以字符串形式出现。我确定您可以修改以下内容以满足您的需求: 请注意,这只是

  • 我正在尝试使用jquery插件裁剪/调整用户配置文件图像的大小,即crop.js,它将用户图像作为base64通过ajax发送到我的控制器

  • 问题内容: 我正在尝试像PHP函数一样从字符串加载图像 我怎样才能做到这一点? 我有MySQL Blob字段图像。我正在使用 MySQLdb, 并且不想在PyOpenCV中创建用于处理图像的临时文件。 注意:需要cv(不是cv2)包装函数 问题答案: 这就是我通常用来将数据库中存储的图像转换为Python中的OpenCV图像的方式。 我已添加了从到的转换,因此上面的脚本将显示: 编辑: 从最新的n

  • 是否可以从base64字符串创建QIcon? 我看到我们可以将base64字符串加载到QByteArray中。我看到我们可以从QPixMap创建一个QIcon。 我尝试了以下方法: 什么都没显示出来。 PS:这里可以试试base64图像。

  • 问题内容: 我正在尝试将base64图像字符串转换为图像文件。 使用以下代码将其转换为图像文件: 但是我遇到了错误,这是怎么了? 问题答案: 问题是编码内容中包含该内容。当base64函数对其进行解码时,这将导致无效的图像数据。像这样在解码字符串之前先删除函数中的数据。