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的Tkinter实现一个简易计算器
Dec 31 Python
浅谈使用Python内置函数getattr实现分发模式
Jan 22 Python
Python解决抛小球问题 求小球下落经历的距离之和示例
Feb 01 Python
python 实现在Excel末尾增加新行
May 02 Python
利用PyCharm Profile分析异步爬虫效率详解
May 08 Python
python logging日志模块原理及操作解析
Oct 12 Python
Pandas数据离散化原理及实例解析
Nov 16 Python
Python django搭建layui提交表单,表格,图标的实例
Nov 18 Python
python不使用for计算两组、多个矩形两两间的iou方式
Jan 18 Python
python用opencv完成图像分割并进行目标物的提取
May 25 Python
基于Python实现下载网易音乐代码实例
Aug 10 Python
python 爬取华为应用市场评论
May 29 Python
python实现A*寻路算法
Python实现生成bmp图像的方法
Jun 13 #Python
Python实现随机生成迷宫并自动寻路
python中opencv实现图片文本倾斜校正
Jun 11 #Python
端午节将至,用Python爬取粽子数据并可视化,看看网友喜欢哪种粽子吧!
Python-OpenCV实现图像缺陷检测的实例
Python中OpenCV实现简单车牌字符切割
You might like
php XPath对XML文件查找及修改实现代码
2011/07/27 PHP
php在window iis的莫名问题的测试方法
2013/05/14 PHP
php操作(删除,提取,增加)zip文件方法详解
2015/03/12 PHP
PHP计算加权平均数的方法
2015/07/16 PHP
CentOS下搭建PHP环境与WordPress博客程序的全流程总结
2016/05/07 PHP
非常经典的PHP文件上传类分享
2016/05/15 PHP
php自动载入类用法实例分析
2016/06/24 PHP
详解PHP归并排序的实现
2016/10/18 PHP
laravel实现分页样式替换示例代码(增加首、尾页)
2017/09/22 PHP
php微信公众号开发之答题连闯三关
2018/10/20 PHP
Laravel框架验证码类用法实例分析
2019/09/11 PHP
Javascript 获取LI里的内容
2008/12/17 Javascript
javascript 动态修改样式和层叠样式表代码
2010/04/27 Javascript
通过js简单实现将一个文本内容转译成加密文本
2013/10/22 Javascript
简单方法判断JavaScript对象为null或者属性为空
2014/09/26 Javascript
window.location 对象所包含的属性
2014/10/10 Javascript
js中hash和ico的关联分析
2015/02/05 Javascript
jQuery移动端图片上传组件
2016/06/12 Javascript
原生js封装自定义滚动条
2017/03/24 Javascript
深入理解基于vue-cli的vuex配置
2017/07/24 Javascript
web前端开发中常见的多列布局解决方案整理(一定要看)
2017/10/15 Javascript
JS操作json对象key、value的常用方法分析
2019/10/29 Javascript
electron踩坑之dialog中的callback解决
2020/10/06 Javascript
[01:03:41]完美世界DOTA2联赛PWL S3 DLG vs Phoenix 第一场 12.17
2020/12/19 DOTA
用Python编程实现语音控制电脑
2014/04/01 Python
Python是编译运行的验证方法
2015/01/30 Python
Python中AND、OR的一个使用小技巧
2015/02/18 Python
Python基于递归算法实现的走迷宫问题
2017/08/04 Python
Python中的集合介绍
2019/01/28 Python
Python从入门到精通之环境搭建教程图解
2019/09/26 Python
python爬虫开发之urllib模块详细使用方法与实例全解
2020/03/09 Python
综合办公室个人的自我评价
2013/12/22 职场文书
洗煤厂厂长岗位职责
2014/01/03 职场文书
乡镇干部十八大感言
2014/02/17 职场文书
教师求职信范文
2014/05/24 职场文书
2016年春节慰问信息大全
2015/11/30 职场文书