Python OpenCV实现传统图片格式与base64转换


Posted in Python onJune 13, 2021

Base64是网络上最常见的用于传输8Bit字节码的编码方式之一,是一种基于64个可打印字符来表示二进制数据的方法。通过http传输图片常常将图片数据转换成base64之后再进行传输。

Base64简介

Base64是网络上最常见的用于传输8Bit字节码的编码方式之一,Base64就是一种基于64个可打印字符来表示二进制数据的方法。可查看RFC2045~RFC2049,上面有MIME的详细规范。

Base64编码是从二进制到字符的过程,可用于在HTTP环境下传递较长的标识信息。例如,在Java Persistence系统Hibernate中,就采用了Base64来将一个较长的唯一标识符(一般为128-bit的UUID)编码为一个字符串,用作HTTP表单和HTTP GET URL中的参数。在其他应用程序中,也常常需要把二进制数据编码为适合放在URL(包括隐藏表单域)中的形式。此时,采用Base64编码具有不可读性,需要解码后才能阅读。

Python中将图片转base64

# -*- coding: utf-8 -*-   
import base64   
with open("/home/chaowei/1.png","rb") as f: 
# b64encode是编码,b64decode是解码 
base64_data = base64.b64encode(f.read()) 
# base64.b64decode(base64data) 
print(base64_data)

在前端html中调用base64编码

<img src="data:image/jpg;base64,这里是base64的编码"/>

另外,有很多网站提供转换API,在线编码解码

base64转为图片

import os,base64 
 
with open("C:\\Users\\wonai\\Desktop\\1.txt","r") as f:
#str = "iVBORw0KGgoAAAANSUhEUgAAANwAAAAoCAIAAAAaOwPZAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAQuSURBVHhe7ZptmoMgDIR7rh6o5+lpvEwP01XUGshAokgX+8z+7PKRTF6SoN7e/KMCnSlw68wemkMF3oSSEHSnAKHsLiQ0iFCSge4UIJTdhYQGEUoy0J0ChLK7kNAgQkkGulOAUHYXEhpEKMlAdwpcG8rhcRv/HkN3stIgW4F88DYoX89nObjmANuOc0eMXpHHcyX9+mowhgHKmdlChM0BZzvzet6DSSW7xjEWk8Hu+/O1x7zF1237/Uu4t/O46V6sZuARoZb9KqbO7On4rJlykqcYYnNAjSbx3Gmrj6WTzxirVlA+90F82G+nm4fX3zOxgqyKqRaUU7b8FpRDOeyjJa7k5oByT1yWse4mxfDC3NrrprnQtQeUMuUXoURmCGHdKfl/oTS8MElxu2mudO0BXUCZL8efVGU0EmsQjkGpM2H8y/CwGtW1C3el8ywxhHKWxgOlaPNj0VcRRW+OoiKvCXF0o6YeXWLQDaNQyMf1Clhsi22D9HUNXOBCVZamaBmiO5BxRdRQOt3M3oFUAD4/HDolSChx7AvXzRIJQtgsUfMu6HB+HglNLc5d5KiwpcAqTH7Idk/lvLD9Z0rUx4vYWL2UJ4WY6XbdL91ML57+EjsRNEMnw/LCrKklN9NNkbuLvKsdabjM/ZMByh+PDWuuw6kDEYXPzeSfzGARlNG1M1ENRCfGLlUuJ5MVTg+UyxGzC+1+KN/DkDyuTSVbqo7vNnagfKPTrH9b8pQtgQ/PRCifDTaUJaIWw8adUycklLrcppkyCZfkJ5cYlSZnQTkmsYf58OYAlMpg6JnlhYlC9uxhIdWvbr1NS8Ahc9pgQlkkai3fOorVUK4JGeYTJIgVTm+mnCqrmSfOgDJ0mOlOlhcmClk3M0KmPzeF0mnDGVB6LjqbmKB8p5GRQ34DStRCdpEpp5MRNWRNocwsjk9i7nyqugzPYTWUSZuqe0qVucAT5tgH9ITmxEdCdihjpcCVAgfI8uJ4pgx3K3UhgBeRQ9dtbJmjp1TnYmsKoSH1UGqKE23mxlrsri4yKsuAFnZ5BrAugypw0/IdSvHmxHJbEI6lREzj0asuOc7TR8BONdd9pNKCo4LRNY9CdgCEXjqObDhQvsFpy7z7DsqHP9khxp9DzNeKbSR+Iy3/n31tqVFYe17xFUZkTu507+4px4USFwBRm32lbzFyXphgRMtn3cwqqaef8a0UrMHlaJYM8RC1Iq2DeOXvKUdVjALmzromST8+4N+Egm9rrwzl/DpAVlddnE9su36Jyx6ECtkUxufaUMJOzfwQsxldUbnTLyO/ckCcNsS112yDmkkGF/4xKL8rHndrowChbKMrV61QgFBWiMepbRQglG105aoVChDKCvE4tY0ChLKNrly1QgFCWSEep7ZRgFC20ZWrVihAKCvE49Q2ChDKNrpy1QoF/gDXIhmWmc+CSAAAAABJRU5ErkJggg=="
    imgdata = base64.b64decode(f.read())
    file = open('1.jpg','wb')
    file.write(imgdata)
    file.close()

Python中将base64转为opencv的Mat格式

import cv2
import base64
imgData = base64.b64decode(base64_data)
nparr = np.fromstring(imgData, np.uint8)
img_np = cv2.imdecode(nparr, cv2.IMREAD_COLOR)
#cv2.imshow("test",img_np)
#cv2.waitKey(0)

Python中将opencv的Mat格式转为base64

import cv2
import base64
imgData = base64.b64decode(base64_data)
nparr = np.fromstring(imgData, np.uint8)
img_np = cv2.imdecode(nparr, cv2.IMREAD_COLOR)
 
image = cv2.imencode('.jpg', img_np)[1]
base64_data = str(base64.b64encode(image))[2:-1])

到此这篇关于Python OpenCV实现传统图片格式与base64转换的文章就介绍到这了,更多相关OpenCV传统图片格式与base64转换内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
Python3.x中自定义比较函数
Apr 24 Python
Python切换pip安装源的方法详解
Nov 18 Python
python 获取字符串MD5值方法
May 29 Python
Python 忽略warning的输出方法
Oct 18 Python
python实现全盘扫描搜索功能的方法
Feb 14 Python
python redis 删除key脚本的实例
Feb 19 Python
Python将string转换到float的实例方法
Jul 29 Python
Django1.11配合uni-app发起微信支付的实现
Oct 12 Python
使用Python和百度语音识别生成视频字幕的实现
Apr 09 Python
Django-imagekit的使用详解
Jul 06 Python
Python使用eval函数执行动态标表达式过程详解
Oct 17 Python
Pytorch中Softmax与LogSigmoid的对比分析
Jun 05 Python
python实现A*寻路算法
Python实现生成bmp图像的方法
Jun 13 #Python
Python实现随机生成迷宫并自动寻路
python中opencv实现图片文本倾斜校正
Jun 11 #Python
端午节将至,用Python爬取粽子数据并可视化,看看网友喜欢哪种粽子吧!
Python-OpenCV实现图像缺陷检测的实例
Python中OpenCV实现简单车牌字符切割
You might like
提问的智慧(2)
2006/10/09 PHP
一个简洁实用的PHP缓存类完整实例
2014/07/26 PHP
PHP读取大文件末尾N行的高效方法推荐
2016/06/03 PHP
js 效率组装字符串 StringBuffer
2009/12/23 Javascript
js拖动div 当鼠标移动时整个div也相应的移动
2013/11/21 Javascript
jQuery动态显示和隐藏datagrid中的某一列的方法
2013/12/11 Javascript
jquery获取选中的文本和值的方法
2014/07/08 Javascript
AngularJS入门知识之MVW类框架的编程思想探讨
2014/12/08 Javascript
基于jQuery实现鼠标点击导航菜单水波动画效果附源码下载
2016/01/06 Javascript
javaScript中的原型解析【推荐】
2016/05/05 Javascript
JavaScript实现的鼠标响应颜色渐变效果完整实例
2017/02/18 Javascript
微信、QQ、微博、Safari中使用js唤起App
2018/01/24 Javascript
Vue.js 表单控件操作小结
2018/03/29 Javascript
使用vue开发移动端管理后台的注意事项
2019/03/07 Javascript
Vue实现星级评价效果实例详解
2019/12/30 Javascript
Python使用scrapy采集时伪装成HTTP/1.1的方法
2015/04/08 Python
Python的Flask框架中的Jinja2模板引擎学习教程
2016/06/30 Python
Python中列表list以及list与数组array的相互转换实现方法
2017/09/22 Python
PyQt5每天必学之关闭窗口
2018/04/19 Python
Python3的介绍、安装和命令行的认识(推荐)
2018/10/20 Python
pandas中apply和transform方法的性能比较及区别介绍
2018/10/30 Python
python 多线程串行和并行的实例
2019/02/22 Python
Python实现使用request模块下载图片demo示例
2019/05/24 Python
python如何给字典的键对应的值为字典项的字典赋值
2019/07/05 Python
将自己的数据集制作成TFRecord格式教程
2020/02/17 Python
python二维图制作的实例代码
2020/12/03 Python
巴黎卡诗美国官方网站:始于1964年的头发头皮护理专家
2017/07/10 全球购物
会计与审计毕业生自荐信范文
2013/12/30 职场文书
竞选部长演讲稿
2014/04/26 职场文书
大学生职业生涯十年规划书范文
2014/09/17 职场文书
高中学生自我评价范文
2014/09/23 职场文书
2014年组织部工作总结
2014/11/14 职场文书
优秀共产党员事迹材料
2014/12/18 职场文书
有关西游记的读书笔记
2015/06/25 职场文书
呼啸山庄读书笔记
2015/06/29 职场文书
三严三实·严以修身心得体会
2016/01/15 职场文书