使用django从客户端保存并加载图像到服务器 [英] Save and load image from client to server with django

查看:152
本文介绍了使用django从客户端保存并加载图像到服务器的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

以下是我如何从客户端(coffeescript& dajaxice)发送数据:

Here is how I send data from the client (coffeescript & dajaxice):

imageData = canvas.toDataURL("image/png")
Dajaxice.draw.saveImage( @saveImage_callback, {'image': imageData } )

以下是我在服务器上保存图片的方式(取自此答案

Here is how I save my image on the server (taken from this answer)

@dajaxice_register
def saveImage(request, image):

   imageData = re.search(r'base64,(.*)', image).group(1)
   output = open('image.png', 'wb')
   output.write(imageData.decode('base64'))
   output.close()



我想加载图像并发送像这​​样:

I would like to load the image and send it like so:

inputfile = open('image.png', 'rb')
imageData = inputfile.read().encode('base64')
inputfile.close()
return simplejson.dumps( { 'image': imageData } )

但这不会给我完全相同的数据,我的客户端无法绘制返回的图像。当我写它时,imageData以 2OWn9u2 结束,而当我阅读它时(缺少'9u2'), 2OWn p>

But this does not give me the exact same data, and my client fails to draw the returned image. imageData ends with 2OWn9u2 when I write it, and 2OWn when I read it (missing '9u2').

推荐答案

好吧,数据的区别不是问题,它的工作原理。下面是我如何在客户端上绘制返回的图片:

Ok, the difference of data is not a problem, it works. Here is how I draw the returned image on my client:

saveImage_callback: (result)=>
    imageData = 'data:image/png;base64,'+result.image
    image = new Image()
    image.src = imageData
    canvas.getContext("2d").drawImage(image, 300, 300, 300, 300)

这篇关于使用django从客户端保存并加载图像到服务器的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆