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中的yield使用方法
Feb 11 Python
Python批量更改文件名的实现方法
Oct 29 Python
python3爬取各类天气信息
Feb 24 Python
Python装饰器原理与简单用法实例分析
Apr 29 Python
python3.4控制用户输入与输出的方法
Oct 17 Python
Python之pymysql的使用小结
Jul 01 Python
python Django的web开发实例(入门)
Jul 31 Python
Python 矩阵转置的几种方法小结
Dec 02 Python
Python Tensor FLow简单使用方法实例详解
Jan 14 Python
Python range与enumerate函数区别解析
Feb 28 Python
python代码能做成软件吗
Jul 24 Python
python中_del_还原数据的方法
Dec 09 Python
python实现A*寻路算法
Python实现生成bmp图像的方法
Jun 13 #Python
Python实现随机生成迷宫并自动寻路
python中opencv实现图片文本倾斜校正
Jun 11 #Python
端午节将至,用Python爬取粽子数据并可视化,看看网友喜欢哪种粽子吧!
Python-OpenCV实现图像缺陷检测的实例
Python中OpenCV实现简单车牌字符切割
You might like
php中通过虚代理实现延迟加载的实现代码
2011/06/10 PHP
让CodeIgniter的ellipsize()支持中文截断的方法
2014/06/12 PHP
ThinkPHP实现图片上传操作的方法详解
2017/05/08 PHP
[JS源码]超长文章自动分页(客户端版)
2007/01/09 Javascript
JavaScript prototype对象的属性说明
2010/03/13 Javascript
IE的有条件注释判定IE版本详解(附实例代码)
2012/01/04 Javascript
javascript作用域容易记错的两个地方分析
2012/06/22 Javascript
js保留两位小数使用toFixed实现
2013/07/29 Javascript
详解JS函数重载
2014/12/04 Javascript
JavaScript中pop()方法的使用教程
2015/06/09 Javascript
JavaScript编写检测用户所使用的浏览器的代码示例
2016/05/05 Javascript
JQuery validate插件Remote用法大全
2016/05/15 Javascript
jquery遍历json对象集合详解
2016/05/18 Javascript
jQuery遍历DOM的父级元素、子级元素和同级元素的方法总结
2016/07/07 Javascript
vue强制刷新组件的方法示例
2019/02/28 Javascript
Angular CLI 使用教程指南参考小结
2019/04/10 Javascript
JS数组中对象去重操作示例
2019/06/04 Javascript
vue filter 完美时间日期格式的代码
2019/08/14 Javascript
Python语言的面相对象编程方式初步学习
2016/03/12 Python
Python中的单行、多行、中文注释方法
2018/07/19 Python
使用Python脚本zabbix自定义key监控oracle连接状态
2019/08/28 Python
python读取ini配置的类封装代码实例
2020/01/08 Python
HTML5获取当前地理位置并在百度地图上展示的实例
2020/07/10 HTML / CSS
Clarks英国官方网站:全球领军鞋履品牌
2016/11/26 全球购物
某公司.Net方向面试题
2014/04/24 面试题
如何定义一个可复用的服务
2014/09/30 面试题
2014年创先争优活动总结
2014/05/04 职场文书
励志演讲稿600字
2014/08/21 职场文书
个人工作表现评价材料
2014/09/21 职场文书
2014年维稳工作总结
2014/11/18 职场文书
大学生心理健康活动总结
2015/05/08 职场文书
办公室年度工作总结2015
2015/05/21 职场文书
无工作证明怎么写
2015/06/15 职场文书
php 原生分页
2021/04/01 PHP
解决numpy和torch数据类型转化的问题
2021/05/23 Python
SpringBoot前端后端分离之Nginx服务器下载安装过程
2022/08/14 Servers