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自动化构建工具scons使用入门笔记
Mar 10 Python
python实现复制整个目录的方法
May 12 Python
pandas series序列转化为星期几的实例
Apr 11 Python
pandas 根据列的值选取所有行的示例
Nov 07 Python
浅谈Python 列表字典赋值的陷阱
Jan 20 Python
对Python3中dict.keys()转换成list类型的方法详解
Feb 03 Python
Python selenium根据class定位页面元素的方法
Feb 26 Python
python里运用私有属性和方法总结
Jul 08 Python
PyTorch中Tensor的维度变换实现
Aug 18 Python
jupyter notebook 重装教程
Apr 16 Python
python编程的核心知识点总结
Feb 08 Python
python 第三方库paramiko的常用方式
Feb 20 Python
python实现A*寻路算法
Python实现生成bmp图像的方法
Jun 13 #Python
Python实现随机生成迷宫并自动寻路
python中opencv实现图片文本倾斜校正
Jun 11 #Python
端午节将至,用Python爬取粽子数据并可视化,看看网友喜欢哪种粽子吧!
Python-OpenCV实现图像缺陷检测的实例
Python中OpenCV实现简单车牌字符切割
You might like
Thinkphp将二维数组变为标签适用的一维数组方法总结
2014/10/30 PHP
thinkphp缓存技术详解
2014/12/09 PHP
php session的锁和并发
2016/01/22 PHP
php微信公众号开发之现金红包
2018/04/16 PHP
PHP操作redis实现的分页列表,新增,删除功能封装类与用法示例
2018/08/04 PHP
JavaScript 实现??打印?理
2007/04/28 Javascript
js 第二代身份证号码的验证机制代码
2011/05/12 Javascript
jsTree 基于JQuery的排序节点 Bug
2011/07/26 Javascript
JavaScript设计模式之外观模式实例
2014/10/10 Javascript
js实现ArrayList功能附实例代码
2014/10/29 Javascript
原生javascript实现图片按钮切换
2015/01/12 Javascript
探讨JavaScript中的Rest参数和参数默认值
2015/07/29 Javascript
理解JS事件循环
2016/01/07 Javascript
bootstrap使用validate实现简单校验功能
2016/12/02 Javascript
javascript简单实现深浅拷贝过程详解
2019/10/08 Javascript
vue解决花括号数据绑定不成功的问题
2019/10/30 Javascript
简述Python中的进程、线程、协程
2016/03/18 Python
Python编程判断这天是这一年第几天的方法示例
2017/04/18 Python
Python开发的实用计算器完整实例
2017/05/10 Python
Apache如何部署django项目
2017/05/21 Python
Python实现矩阵加法和乘法的方法分析
2017/12/19 Python
解决python3中的requests解析中文页面出现乱码问题
2019/04/19 Python
使用python库xlsxwriter库来输出各种xlsx文件的示例
2020/09/01 Python
利用python 下载bilibili视频
2020/11/13 Python
基于Python中Remove函数的用法讨论
2020/12/11 Python
当当网官方旗舰店:中国图书销售夺金品牌
2018/04/02 全球购物
入党积极分子思想汇报范文
2014/01/05 职场文书
学习焦裕禄同志为人民服务思想汇报
2014/09/10 职场文书
四风问题自我剖析材料
2014/10/07 职场文书
2014年物流工作总结
2014/11/25 职场文书
网络营销计划
2015/01/17 职场文书
团代会闭幕词
2015/01/28 职场文书
个人工作总结(管理人员)范文
2019/08/13 职场文书
Python学习之时间包使用教程详解
2022/03/21 Python
mysql如何查询连续记录
2022/05/11 MySQL
Java服务调用RestTemplate与HttpClient的使用详解
2022/06/21 Java/Android