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 相关文章推荐
Python中 Lambda表达式全面解析
Nov 28 Python
详解 Python 读写XML文件的实例
Aug 02 Python
Python 处理数据的实例详解
Aug 10 Python
Python3之文件读写操作的实例讲解
Jan 23 Python
对Pandas DataFrame缺失值的查找与填充示例讲解
Nov 06 Python
Python标准库使用OrderedDict类的实例讲解
Feb 14 Python
python学习--使用QQ邮箱发送邮件代码实例
Apr 16 Python
解决Pycharm 包已经下载,但是运行代码提示找不到模块的问题
Aug 31 Python
Python使用Tkinter实现滚动抽奖器效果
Jan 06 Python
零基础学Python之前需要学c语言吗
Jul 21 Python
Python实现上下文管理器的方法
Aug 07 Python
Python使用plt.boxplot()函数绘制箱图、常用方法以及含义详解
Aug 14 Python
python实现A*寻路算法
Python实现生成bmp图像的方法
Jun 13 #Python
Python实现随机生成迷宫并自动寻路
python中opencv实现图片文本倾斜校正
Jun 11 #Python
端午节将至,用Python爬取粽子数据并可视化,看看网友喜欢哪种粽子吧!
Python-OpenCV实现图像缺陷检测的实例
Python中OpenCV实现简单车牌字符切割
You might like
php 数组二分法查找函数代码
2010/02/16 PHP
Windows下安装Memcached的步骤说明
2010/04/25 PHP
使用GROUP BY的时候如何统计记录条数 COUNT(*) DISTINCT
2011/04/23 PHP
深入php socket的讲解与实例分析
2013/06/13 PHP
PHP中使用虚代理实现延迟加载技术
2014/11/05 PHP
文本框input聚焦失焦样式实现代码
2012/10/12 Javascript
JQuery中使用ajax传输超大数据的解决方法
2014/07/14 Javascript
JavaScript基础知识学习笔记
2014/12/02 Javascript
javascript使用for循环批量注册的事件不能正确获取索引值的解决方法
2014/12/20 Javascript
jQuery实现的产品自动360度旋转展示特效源码分享
2015/08/21 Javascript
jquery点击改变class并toggle的实现代码
2016/05/15 Javascript
javascript显示倒计时控制按钮的简单实现
2016/06/07 Javascript
Angular 2父子组件数据传递之@Input和@Output详解(下)
2017/07/05 Javascript
Node.js微信 access_token ( jsapi_ticket ) 存取与刷新的示例
2017/09/30 Javascript
实例解析Vue.js下载方式及基本概念
2018/05/11 Javascript
NodeJs入门教程之定时器和队列
2019/03/08 NodeJs
JS中的一些常用的函数式编程术语
2019/06/15 Javascript
详解Vscode中使用Eslint终极配置大全
2019/11/08 Javascript
微信小程序利用云函数获取手机号码
2019/12/17 Javascript
vuex+axios+element-ui实现页面请求loading操作示例
2020/02/02 Javascript
Vue中key的作用示例代码详解
2020/06/10 Javascript
JavaScript实现烟花绽放动画效果
2020/08/04 Javascript
vue+echarts+datav大屏数据展示及实现中国地图省市县下钻功能
2020/11/16 Javascript
浅谈Django中view对数据库的调用方法
2019/07/18 Python
纯CSS3实现Material Design效果
2017/03/09 HTML / CSS
SQL Server面试题
2016/10/17 面试题
Discard Protocol抛弃协议的作用是什么
2015/10/10 面试题
技术经理的自我评价范文
2013/12/03 职场文书
工地资料员岗位职责
2013/12/31 职场文书
幼儿园家长评语
2014/02/10 职场文书
交警个人先进事迹材料
2014/05/11 职场文书
如何写贫困证明申请书
2014/10/29 职场文书
大学生就业意向书
2015/05/11 职场文书
当幸福来敲门观后感
2015/06/01 职场文书
入党宣誓仪式主持词
2015/06/29 职场文书
全国劳模先进事迹材料(2016精选版)
2016/02/25 职场文书