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模拟登陆Tom邮箱示例分享
Jan 13 Python
Python设置默认编码为utf8的方法
Jul 01 Python
python中星号变量的几种特殊用法
Sep 07 Python
python中nan与inf转为特定数字方法示例
May 11 Python
对python 判断数字是否小于0的方法详解
Jan 26 Python
django 中的聚合函数,分组函数,F 查询,Q查询
Jul 25 Python
Python使用微信itchat接口实现查看自己微信的信息功能详解
Aug 22 Python
python 解决Fatal error in launcher:错误问题
May 21 Python
使用pycharm和pylint检查python代码规范操作
Jun 09 Python
python json.dumps() json.dump()的区别详解
Jul 14 Python
python时间序列数据转为timestamp格式的方法
Aug 03 Python
Python 流媒体播放器的实现(基于VLC)
Apr 28 Python
python实现A*寻路算法
Python实现生成bmp图像的方法
Jun 13 #Python
Python实现随机生成迷宫并自动寻路
python中opencv实现图片文本倾斜校正
Jun 11 #Python
端午节将至,用Python爬取粽子数据并可视化,看看网友喜欢哪种粽子吧!
Python-OpenCV实现图像缺陷检测的实例
Python中OpenCV实现简单车牌字符切割
You might like
Breeze 文章管理系统 v1.0.0正式发布
2006/12/14 PHP
PHP原理之异常机制深入分析
2010/08/08 PHP
php生成静态文件的多种方法分享
2012/07/17 PHP
php实现面包屑导航例子分享
2015/12/19 PHP
替代window.event.srcElement效果的可兼容性的函数
2009/12/18 Javascript
Javascript学习笔记6 prototype的提出
2010/01/11 Javascript
Javascript倒计时代码
2010/08/12 Javascript
利用javascript的面向对象的特性实现限制试用期
2011/08/04 Javascript
简单的前端js+ajax 购物车框架(入门篇)
2011/10/29 Javascript
Google Map V3 绑定气泡窗口(infowindow)Dom事件实现代码
2013/04/26 Javascript
javascript 实现字符串反转的三种方法
2013/11/23 Javascript
javascript轻松实现当鼠标移开时已弹出子菜单自动消失
2013/12/29 Javascript
JavaScript输入邮箱自动提示实例代码
2014/01/13 Javascript
Ajax提交与传统表单提交的区别说明
2014/02/07 Javascript
jquery中常用的函数和属性详细解析
2014/03/07 Javascript
javascript的正则匹配方法学习
2016/02/24 Javascript
jquery实现无刷新验证码的简单实例
2016/05/19 Javascript
深入理解jquery中extend的实现
2016/12/22 Javascript
详解基于vue-cli配置移动端自适应
2018/01/13 Javascript
用Fundebug插件记录网络请求异常的方法
2019/02/21 Javascript
jQuery.parseJSON()函数详解
2019/02/28 jQuery
vue使用keep-alive实现组件切换时保存原组件数据方法
2020/10/30 Javascript
python Flask实现restful api service
2017/12/04 Python
python 日志增量抓取实现方法
2018/04/28 Python
python3 求约数的实例
2019/12/05 Python
使用OpenCV-python3实现滑动条更新图像的Canny边缘检测功能
2019/12/12 Python
Python基础之高级变量类型实例详解
2020/01/03 Python
Python 中如何写注释
2020/08/28 Python
加拿大建筑和装修专家:Reno-Depot
2017/12/21 全球购物
积极向上的团队口号
2014/06/06 职场文书
企业安全生产标语
2014/06/06 职场文书
病人写给医生的感谢信
2015/01/23 职场文书
外出考察学习心得体会
2016/01/18 职场文书
教师外出学习心得体会
2016/01/18 职场文书
springboot集成springCloud中gateway时启动报错的解决
2021/07/16 Java/Android
Python3的进程和线程你了解吗
2022/03/16 Python