问题描述

js利用canvas.toDataURL("image/png")将canvas元素转化为base64的图片编码。

python获取base64编码并解码并且保存为图片储存。再利用opencv打开图片时失败。

html部分代码,包含canvas和from,用于绘制图形和向后台传输base64的值

{% csrf_token %}

submit

上传

此处为JS部分代码,主要是实现绘图功能和base64编码,将canvas转化为png的base64编码

down = 0;//记录鼠标按下状态

function upload(){

var canvas = document.getElementById("myCanvas");

url = canvas.toDataURL("image/png");//将canvas转化为png的base64编码

document.getElementById('photo').value = url;

document.getElementById('submit').click();//触发from的submit

}

//当鼠标按下并滑动时,绘制黑色圆点

function cnvs_getCoordinates(e){

if(down) {

var canvas = document.getElementById("myCanvas");

bbox = canvas.getBoundingClientRect();

x = Math.round((e.clientX - bbox.left) * (canvas.width / bbox.width));

y = Math.round((e.clientY - bbox.top) * (canvas.height / bbox.height));

var ctx=canvas.getContext("2d");

ctx.beginPath();

ctx.arc(x,y,15,0,360,false);

ctx.fill();

ctx.closePath();

}

}

此处为python处理base64编码部分

strs = request.POST.get('img').split(',')[1]#获取base64编码

imgdata = base64.b64decode(strs)#解码

file = open('0.png', 'wb')#保存为0.png的图片

file.write(imgdata)

file.close()

pimg = Image.open('0.png')#获取图片

cv2.namedWindow("Image")#创建窗口

cv2.imshow("Image",pimg)#显示图片

cv2.waitKey(0)

cv2.destroyAllWindows()

以下为截图

页面截图

opencv imshow截图

保存的图片

该图片由js生成的base64为

data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAPAAAADwCAYAAAA+VemSAAAQ90lEQVR4Xu1dW8imVRV+nEnHTLHxDGYeCEM0GiPoImKEjJIsC4IsFTUJTAj1qsNF6k0FXWRCVFBokR1uaswg66IsvBAKcqLpcJWVgXbQCrUstXic92W++ef/59vvaa+91npe+PnE2Ye1nmc97z68+3AE9AgBIeAWgSPcWi7DhYAQgASsIBACjhGQgB2TJ9OFgASsGBACjhGQgB2TJ9OFgASsGBACjhGQgB2TJ9OFgASsGBACjhGQgB2TJ9OFgASsGBACjhGQgB2TJ9OFgASsGBACjhGQgB2TJ9OFgASsGBACjhGQgB2TJ9OFgASsGBACjhGQgB2TJ9OFgASsGBACjhGQgB2TJ9OFgASsGBACjhGQgB2TJ9OFgASsGBACjhGQgB2TJ9OFgASsGBACjhGQgB2TJ9OFgASsGBACjhGQgB2TJ9OFgASsGBACjhGQgB2TJ9OFgASsGBACjhGQgB2TJ9OFgASsGBACjhGQgB2TJ9OFgASsGBACjhGQgMvJeweA3QB2AXhp98vcvwNwZFfMfwGc3f330P//ZJfv2O73IQAvAsAyWf6zK3Xy3/4OgL/3A7in3A2ljISABHx4NinUGwHc1Im2Ve4p5tsBfKYTdqt2yq6ZEZCAtwb0GgCfbly4G62nkK8FsGfmOFFxjSIgAW9ODFsztrxeH9p/s1fjZXc5AhLwwVixy/yjlbFmOZLtpfwhgF9sMmbX+Lk9rkZbJAEfgO4OADcA2D4aTZ8ZNX72ydsLVmcXcD9J9REAOxzzOIfpGj/PgWLlMjIL2OMkVY3w+FzXE6lRl+qYiEBWAXufpJpI+9rsHD+/cW0qJTBHIJuAI01SLR08PwfwmqUrUfnTEMgiYK6i+gCAiwFsmwZZqtxqiRunO7KAvayiajxE8Pnu5de6nSntiypgTVDNG87v1OqueQGdq7SIAuYs6vVzAaRyXkCAn5i4SYO/ehpCIJqAHwDw+obwjWTKbQBujeRQBF8iCZizptzqp2cZBNj67lymaJU6FoEoAlbLOzYChuXTWHgYXounjiDgLwF43+JIqQIiwP3G3ButpxEEvAv4iwCuawTLDGb8GMBFGRz14qNnAWu2uX6UcSvihfWrVY1bIeBVwHcBuFq0miDgNWZMwFq6Uo9kaCPC0lFx+PKvAPA1WxNUe4+ANwFzhdWdoq8JBJ4AsA/Az3Qyph0fngTMtc08qpW/etpD4DkAfwTwPQDf11G3dQjyJGCuArqlDiyqZQYEdFTPDCCuK8KTgHnAOQ861+MLgacAXKnNEMuQ5kXAPwHwhmUgUKmVEPgngLvVvZ4XbQ8C1qzzvJy3UJq61zOx0LqANes8E9GNFqOTMCcS07KAvc86P7zh0rOzOq62+v8cK/J5Sfe7txvznz+RYy/Z+YXh97qwbRhdLQvY26zzPwCwxzD3vURspY4fRmuI1OpmF9DYsoC9BO4zAD7Z3Q64xIkV2fc5q5t9GCG3KmCeIvntgheQZRIuXPgUAN7qsOTzCQAfXrICJ2XrwPlNiGpVwK3PPHN8ym11S7S4m+npf05EtrSZOuZ2A8KtCpi3zu9eOhpGlm9xNlTLeIyEcXS2RwGcV/HlOdrQGhlbFfBfAZxYA4ABdSw1SVViwpkAOHutZz8CHL68a4EJQ3f4tihgfj7iTpdWHgqXXXr+1eoyb+b7VwBc1QoojdjxIIBLjHkxhaJFAbfy+egRAB9s7C3P76QvN42Y9ir/D4B3N8ZTNZRaFDA/yxxVDYHNK7oXwNuNbdiqei+f12rDl3KWujUB39G1erXJX62PL5CjLQ0oqPtvAE4oSJctSbpZ6pYEzLEvZxh3GEedxSzzGJd/CuC1YzIGz5PqWtSWBNzC2JcTVlyzbDlZNURf7wfwBQAt8TjE/qXSpmmJWyK+hbGdx5sH2HPhFaCcyNFzAIEU16K2IuAWlk566TpvJdJeyHwJWU8CtvIi8fhCHoRdKwK2Xjr5dQDvHYRc24n5QuQGi1e2bebi1nHBx0mOhkSDAWlFwL8xDLbIt+5ZvxgHB+QCGbjP+JwFym2iyBYEzK7f44YTMdHv+2FrzJssMu4p7kUWdjzcgoDZ1fuQ4essw417fEnyVkH+ZRVyyPFwCwL+t/G335DEHuaFyBb5zd0a4jMAbDN8edasmgt0Tos2HrYWsPXsM7/7Zr/pgXcdfQzAuTXVZFTXNwFcblT3ItVaC5hrji9dxLOyQr1/OirzsixVls9QOyO1wtYCttz3y10sp0Yis0ynRanYM+KJI7sAcC9yf6JmUebGEz0Q6ZIAawE/C2C7EeGcPFv6PCsj1xarlsLm7QrHLFZDnYLDtMLWArY664mtr/WmiTqhOn8tEWa0w4yFswpYY995hO11RpsrtEJclJdVwGG6UPPocLZSKGheAcuxc+tPiCFUVgFb+916cE+1z8PqrxDfha0D+XmDJZSs02ribKowPOX3MFZ2P5SyFrDFpd2c+T7SkxIC2MoW+ToAbzV4YR8OPvcbWawF/DSAF1cOUF40nXU9cGWoD6mOrfJ9AF5nbchK/a6X0loL2OozkrXfDcWviSlskb/VSGvseqeSdSBLwCb6aaJSrvDiXl3rGORZ225XmlmDx+7scZXDics3T65cp6rbHAHep3ynMTiuvwlbC9jiIDvtQDJWzIbqeSD79cYmuR0HWwvYogX+C4BTjANG1R+MwGPGnLg91MFawBoDS8pEwPpCO7fHKknAElArCOwBcJmRMQ8BuNCo7knVWguYd95yNrLms9fJWt2amLRQF1thTjBarZKz1sIoDqyN/iWA80dZPj7TPgAXjM+unAsiYHm5nbUWRsFqbTQvoqq9c8Vtd2kUw/4yWcyLcBKNB965e6wFrBbYXcgsbrDFsMrt+nhrAVuQpRZ4cQ1OqsDqu7DLb8HWArboLjG6rP2eFOHBM1sdNezyW7B1IEvAwdU40j2Lww5dfgu2FrDFrQxPATh2ZGApWx0ELJbYuhxaWQuYp0PW3lzPl0btPch1wj5OLeqZFXJpLWARVUhUsmSKi0LCJeBCoJSsKgIaWhXCbS1gi0Pt+HbPciNfYRg0l0xDq0JKrAVs1VVy+c2vkNMIyaziwloPg7mzNtiKKJ6GyT3BnO3U0x4CVnFhrYfBTFgbbEUUgQpzP85g1tvPYPEd+F8eL23LLGC+PE5QK9ykmq1e7NZ6GEyGtcEWR+qsgqRWeHDIVMkgARfCbC1gi91Iq9DwfpyjC7FSsnoI6MD/QqytBXw7gBsLbV0qmWakl0J2fLkWSyldnlZqLWCrnSeroeVyF8p4bbjIaTG0cnlaqbWAGU0WM46rUexyF4oLGY43UmPgQuxaEPCDxpddaXNDYbBUTCYBF4LdgoCvAPDVQnuXSvZdAG9bqnCVOxiBPxtcf8PTYc4ebKlxhhYETAgsZh03Qn8lgLuN+VD1+xF4BMDplcH4E4CXVa5zcnWtCPhWALdM9mZaARyLvwIAb6vTY4uABFyIfysC5qHefAMeU2j3Usk4Hn4PAN4SoMcOAYsuNK86PcfO5XE1tyJgWt/CVZM9ivw+ffM4SJVrBgQ0iVUIYksCpsm/BXBuoe1LJ7sLwLVLV6LyN0VAAi4MjNYEbH1L3UbYtMijMJBmTqYTOQoBbU3ANNvylrrNYNPsdGEwzZjMQsBPAjhuRh+qFNWigNkK866ao6ogsL4Sdueu0iem9UDNmEJd6EIwWxRwaxNamtgqDKYZk0nAhWC2KmCab7GgfR1sjwL4BoD7AdyzLrH+fTQCPB2j9jZP3k188miLjTK2LGCKZLcRLiXVcssbPzdxoktna5UgVpaGQ6jHDe6v0nbCMn6KU7WwV7jEWIqXn5u0+KMErfVprFblaTvhem4GpWhhr/AQg7X4YwhaW6e12MzfW9Nyj3RTxFo3mBeRWS+vHBKWGiMPQevQtNYv7db1cAhirRts1Z2aFob7c2uMPBxFy2HTXgC7hptsm6N1AXNCg63aDluYJtWuMXI5fJYTly5PZmldwKT+BgCfLY+BZlN+B8BlzVrXhmF/AHCGkSkul816EDD5/AGANxkRO2e1vLTr4/r0tCWkVgs4aJDL00m9CJgA/wrAeXOqybCs5wBs7+rnPtT+knPe2dQf68Ib49n95m+WhSNWAnb5DZjx40nA0UQ89P3BE0O4Wui0LmNtgXOGmAtrONHDuYl+wmeqHX25FwO4YCgoM6W/DQAnTN093gRMgO8FcKk7pJc3mK31fQCe6HoqJSJbJ8pfd2K9pPst8aLEjjHlltQ9Jg17Qyd5XU3nUcAkiSdZfnmlGzqGuMx5uF2PT+31xi1i7vpEUq8CZiCc2Z3g4fkTU4sBnc0ml5NXPUmeBUwfrFfuZAv2iP661oBr47tosly9EzGgs/nkWgOujV+JNB5Ad3W2yJO/kxHg9bavmlyKYQFRBEwI1RIbBpLTql0un1zFOpKA+9lp63uWnMZySrNdLp+MLGD6FmXtdEpFVXba9Qw0sYrWAvf8qztdWQkOq3O7fDJ6C9z7p4kth6qqaLLb5ZNZBKyJrYpqcFbV8wBO9Lp8MpOA6SsXe7A1Pt5ZkMnc5RDYZ7hxYlavoo6BN4LEhf03dX8S8qwh5LIw97PPPepZBLwaZWyRLwJwOYBTXYafjJ6KgPvZ58wCXiVfs9VTpeAvf4jZZwn4QOBpjOxPhFMsDjH7LAEfHAIaI0+RhJ+8TwM4PcLsswS8ddBpjOxHkEMtDTP2lYDLqNcYuQwnD6ncb1zYDOSMs9BDg01j5KGItZeep32eEqnrrBZ4WJD1Y+SPrhwBO6wEpbZEIFzXWQIeH046FXM8dhY5Q806bwRQXehxIaVu9TjcaufiyaXX1K60Zn0S8Hi09elpPHY1coZuedWFnjeE+k9P/a0Fr+6K566XbfNWpdLWIMCVVmx192RASi3wsiyrlV4W39XSKVx+9uMfb4dI8UjA9WjeqpV+eMPlZmd1Jj3WXfnRX4JWz9I2a+IVKLwbqt+Awgu5Vy9/S9HiahKrzeA8nFVbCb8PYN4ztBPAWwbseX6mq7D0Vgu2bhvvXeqHCVPsKCm3v50xpUDXhata4HUI+fr3dWLfKIah6UvRWKrc0vrTpJOA01AtRyMiIAFHZFU+pUFAAk5DtRyNiIAEHJFV+ZQGAQk4DdVyNCICEnBEVuVTGgQk4DRUy9GICEjAEVmVT2kQkIDTUC1HIyIgAUdkVT6lQUACTkO1HI2IgAQckVX5lAYBCTgN1XI0IgIScERW5VMaBCTgNFTL0YgISMARWZVPaRCQgNNQLUcjIiABR2RVPqVBQAJOQ7UcjYiABByRVfmUBgEJOA3VcjQiAhJwRFblUxoEJOA0VMvRiAhIwBFZlU9pEJCA01AtRyMiIAFHZFU+pUFAAk5DtRyNiIAEHJFV+ZQGAQk4DdVyNCICEnBEVuVTGgQk4DRUy9GICEjAEVmVT2kQkIDTUC1HIyIgAUdkVT6lQUACTkO1HI2IgAQckVX5lAYBCTgN1XI0IgIScERW5VMaBCTgNFTL0YgISMARWZVPaRCQgNNQLUcjIiABR2RVPqVBQAJOQ7UcjYiABByRVfmUBgEJOA3VcjQiAhJwRFblUxoEJOA0VMvRiAhIwBFZlU9pEJCA01AtRyMiIAFHZFU+pUFAAk5DtRyNiIAEHJFV+ZQGAQk4DdVyNCICEnBEVuVTGgQk4DRUy9GICEjAEVmVT2kQkIDTUC1HIyIgAUdkVT6lQUACTkO1HI2IgAQckVX5lAYBCTgN1XI0IgIScERW5VMaBCTgNFTL0YgISMARWZVPaRCQgNNQLUcjIvB/xZxCDzzApCkAAAAASUVORK5CYII=

python解码图片_python的opencv读取解码的base64图片失败相关推荐

  1. python打开摄像头获取图片_Python基于opencv调用摄像头获取个人图片的实现方法

    接触图像领域的应该对于opencv都不会感到陌生,这个应该算是功能十分强劲的一个算法库了,当然了,使用起来也是很方便的,之前使用Windows7的时候出现多该库难以安装成功的情况,现在这个问题就不存在 ...

  2. python读取word图片_Python中如何读取Word中的图片

    Python能够快速的编写.调试,用来提取各类软件中的图片再好不过了.今天小编就为大家带来在Python中提取Word图片的方法. 方法 需要批量的修改文件后缀名,并且解压之后将图片拷贝到需要存放的地 ...

  3. Python学习(1)OpenCV读取图片

    Python学习(1)OpenCV读取图片 前言 一. Python准备 二. Python仿真 三. 仿真结果 四. 小结 前言 随着人工智能研究的不断兴起,Python的应用也在不断上升,由于Py ...

  4. python储存与读取图片_Python下opencv使用笔记(一)(图像简单读取、显示与储存)...

    写在之前 从去年開始关注python这个软件,途中间间断断看与学过一些关于python的东西.感觉python确实是一个简单优美.easy上手的脚本编程语言,众多的第三方库使得python异常的强大. ...

  5. python截取图片的ROI+OpenCV 在坐标中显示图片+鼠标点击图片显示点坐标

    又来做下笔记了.现在我的毕业设计进行到数据处理的阶段,要在乳腺图像上截取4张相同大小的1024*1024图片,并且每张图片都必须覆盖微钙化点,以下是我现在用到的一些简单程序. 1.首先是截图程序如下: ...

  6. python 爬取图片_Python实现千图成像:从图片爬取到图片合成

    千图成像:用N张图片拼凑成一张图片. 实现原理:先将所要成像的图片转化成马赛克图片,然后从图库中用对应颜色的图片替换相应色块. 图库中的图片处理:标记图库中每张图片的混合颜色,用于替换目标色块,并记录 ...

  7. Opencv读取文件夹连续图片,RGB分量显示,图像灰度化

    1.读取文件夹连续图片 刚开始学习图像处理,开始只能一次读入一张图片,今天从网上查了一些资料,自己写了一个可以连续读取多张图片函数. char filename[100];char windownam ...

  8. opencv读取不同格式单张图片或文件夹下所有图片

    文章目录 1.处理单个文件或文件夹下所有图片 2.读取gif格式图片 3.完整的读取图片注程 对于不同格式的图片,我们需要写一个都可以处理所有格式的图片, 1.处理单个文件或文件夹下所有图片 以下代码 ...

  9. java 微信开发图片发送,微信开发?Java上传Base64图片

    class="java">import org.apache.commons.codec.binary.Base64; import org.apache.log4j.Log ...

最新文章

  1. 万字好文 | B端产品设计指南
  2. 分治:分治和动态规划的区别,二分检索递归和迭代方式实现
  3. machine ID问题 ( u-boot设置machine id , set mach_type 0x16a )
  4. mysql映射超_Hibernate的映射类型 hibernate mysql映射类型
  5. autopep8_Autopep8的使用
  6. java猜拳论文_Java人机猜拳实现的思路及方法实例
  7. WSDM Cup 2020大赛金牌参赛方案全解析
  8. Android Studio 快捷键、Debug的使用
  9. CoreAnimation-Layer详解
  10. Hibernate(2012/2/27)
  11. spring事务失效一:非public方法
  12. 运用matlab求黑塞矩阵,用matlab求黑塞矩阵
  13. Win10电脑 安装 逍遥模拟器【安装步骤、使用指南、逍遥多开器、卸载“逍遥模拟器”、安装手机软件示例“学习国防”】
  14. 【绘画素材】日系插画“人物表情”素材参考!告别脸部僵硬~
  15. spring加载流程之AnnotatedBeanDefinitionReader
  16. iOS 3DTouch 代码实现
  17. Kubernetes部署(一):K8s 二进制方式安装
  18. 推荐3个生活工具类的小程序,非常实用哦!
  19. shell里的json超级工具 jq 高级用法介绍
  20. 《量子信息与量子计算简明教程》第三章·量子纠缠状态及其应用 (上)

热门文章

  1. OpenPortal V5认证计费系统说明文档
  2. blogbus.com(博客大巴)XSS跨站漏洞
  3. 安全测试(四) Wi-Fi安全 渗透测试 网络安全 公共场的免费Wi-Fi真的安全吗?个人信息被监控窃听风险 如: ARP攻击 SSL攻击 DNS安全 加密方式等 枚举实战应用案例 信息窃听获取
  4. 了解前端工程化之组件化——Vue组件
  5. 2023年上海理工大学材料与化工专业考研成功上岸前辈复习经验指导
  6. 南大通用GBase 8c数据库与泛微软件完成互认证 共同搭建统一数字化办公平台
  7. Netty面试题(史上最全)
  8. Android Studio报错 “java.lang.IllegalStateException: Room cannot verify the data integrity” 解决方法
  9. 百度移动生态升级一周年:背后的攻与守、破与立
  10. 我的世界java版的马难以驯服_我的世界:这几种生物很难驯服,最难搞定的就是它了!...