Python如何实现图像的二进制与base64互转
发表于:2025-01-31 作者:千家信息网编辑
千家信息网最后更新 2025年01月31日,这篇"Python如何实现图像的二进制与base64互转"文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我
千家信息网最后更新 2025年01月31日Python如何实现图像的二进制与base64互转
这篇"Python如何实现图像的二进制与base64互转"文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇"Python如何实现图像的二进制与base64互转"文章吧。
函数使用
def base64_to_image(base64_code): img_data = base64.b64decode(base64_code) img_array = numpy.fromstring(img_data, numpy.uint8) # img_array = np.frombuffer(image_bytes, dtype=np.uint8) #可选 image_base64_dec = cv2.imdecode(img_array, cv2.COLOR_RGB2BGR) return image_base64_dec def image_to_base64(full_path): with open(full_path, "rb") as f: data = f.read() image_base64_enc = base64.b64encode(data) image_base64_enc = str(image_base64_enc, 'utf-8') return image_base64_enc#传base64 img_bytes = request.json["img_stream"]img_cv = base64_to_image(img_bytes)uuid_str = str(uuid.uuid1())img_path = uuid_str +".jpg"cv2.imwrite(img_path,img_cv)
1.图像转base64编码
import cv2import base64 def cv2_base64(image): img = cv2.imread(image) binary_str = cv2.imencode('.jpg', img)[1].tostring()#编码 base64_str = base64.b64encode(binary_str)#解码 base64_str = base64_str.decode('utf-8') myjson={"bs64":cv2_base64("1.jpg")} print(myjson) return base64_str
2.图像转二进制编码
import cv2import base64 def cv2_binary(image): img = cv2.imread(image) binary_str = cv2.imencode('.jpg', img)[1].tostring()#编码 print(binary_str) # base64_str = base64.b64encode(binary_str)#解码 # base64_str = base64_str.decode('utf-8') # print(base64_str) return binary_str cv2_binary("1.jpg")# 或者image_file =r"1.jpg"image_bytes = open(image_file, "rb").read()print(image_bytes)# 二进制数据
3.图像保存成二进制文件并读取二进制
# python+OpenCV读取图像并转换为二进制格式文件的代码 # coding=utf-8'''Created on 2016年3月24日使用Opencv读取图像将其保存为二进制格式文件,再读取该二进制文件,转换为图像进行显示@author: hanchao'''import cv2import numpy as npimport struct image = cv2.imread("1.jpg")# imageClone = np.zeros((image.shape[0],image.shape[1],1),np.uint8) # image.shape[0]为rows# image.shape[1]为cols# image.shape[2]为channels# image.shape = (480,640,3)rows = image.shape[0]cols = image.shape[1]channels = image.shape[2]# 把图像转换为二进制文件# python写二进制文件,f = open('name','wb')# 只有wb才是写二进制文件fileSave = open('patch.bin', 'wb')for step in range(0, rows): for step2 in range(0, cols): fileSave.write(image[step, step2, 2])for step in range(0, rows): for step2 in range(0, cols): fileSave.write(image[step, step2, 1])for step in range(0, rows): for step2 in range(0, cols): fileSave.write(image[step, step2, 0])fileSave.close() # 把二进制转换为图像并显示# python读取二进制文件,用rb# f.read(n)中n是需要读取的字节数,读取后需要进行解码,使用struct.unpack("B",fileReader.read(1))函数# 其中"B"为无符号整数,占一个字节,"b"为有符号整数,占1个字节# "c"为char类型,占一个字节# "i"为int类型,占四个字节,I为有符号整形,占4个字节# "h"、"H"为short类型,占四个字节,分别对应有符号、无符号# "l"、"L"为long类型,占四个字节,分别对应有符号、无符号fileReader = open('patch.bin', 'rb')imageRead = np.zeros(image.shape, np.uint8)for step in range(0, rows): for step2 in range(0, cols): a = struct.unpack("B", fileReader.read(1)) imageRead[step, step2, 2] = a[0]for step in range(0, rows): for step2 in range(0, cols): a = struct.unpack("b", fileReader.read(1)) imageRead[step, step2, 1] = a[0]for step in range(0, rows): for step2 in range(0, cols): a = struct.unpack("b", fileReader.read(1)) imageRead[step, step2, 0] = a[0] fileReader.close()cv2.imshow("source", image)cv2.imshow("read", imageRead)cv2.imwrite("2.jpg",imageRead)cv2.waitKey(0)
4.二进制转图像
def binary_cv2(bytes): file = open("4.jpg","wb") file.write(bytes) binary_cv2("bytes")#或者from PIL import Imageimport ioimg = Image.open(io.BytesIO("bytes"))img.save("5.jpg")
5.base64转图像
def base64_cv2(base64code): img_data = base64.b64decode(base64code) file = open("2.jpg","wb") file.write(img_data) file.close() base64_cv2("base64code")============================================with open("1.txt","r") as f: img_data = base64.b64decode(f.read()) file = open("3.jpg","wb") file.write(img_data) file.close()
6.互转
def base64_to_image(base64_code): img_data = base64.b64decode(base64_code) img_array = numpy.fromstring(img_data, numpy.uint8) image_base64_dec = cv2.imdecode(img_array, cv2.COLOR_RGB2BGR) return image_base64_dec #图像矩阵,需要cv2.imwrite写入cv2.imwrite("1.jpg",img) def image_to_base64(full_path): with open(full_path, "rb") as f: data = f.read() image_base64_enc = base64.b64encode(data) image_base64_enc = str(image_base64_enc, 'utf-8') return image_base64_enc
7.二进制转base64
def binary_base64(binary): img_stream = base64.b64encode(binary) bs64 = img_stream.decode('utf-8') print(bs64)
8.base64转二进制
import base64 bs64 = ""img_data = base64.b64decode(bs64)print(img_data)
以上就是关于"Python如何实现图像的二进制与base64互转"这篇文章的内容,相信大家都有了一定的了解,希望小编分享的内容对大家有帮助,若想了解更多相关的知识内容,请关注行业资讯频道。
二进制
图像
字节
文件
符号
内容
类型
编码
函数
整数
文章
格式
知识
篇文章
代码
价值
只有
大部分
就是
数据
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
语义数据用什么数据库
sql语句用什么数据库写
信息网络安全自查汇报
济南软件开发的
智能机器人数据库
怎样找软件开发者
tbc怀旧服装备数据库
计算机网络安全素质教育笔记
苏州恐龙服务器
什么是串口服务器
软件开发职业周期
zoom服务器证书
三十多岁还能转软件开发吗
计算机网络技术实习日志范文
服务器管理员号登陆不了
vb数据库html
周鸿祎网络安全卡脖子
单位网络安全工作领导小组
举例说明如何预防网络安全风险
网络安全手抄报字清楚也少
想做网络游戏服务器多少钱
云开发与传统服务器对比
关于oracle数据库优点
眼镜行业软件开发的发展趋势
软件开发职业周期
核对sci数据库中的数据
网络安全进校园 活动信息
萌站服务器负荷
分布式数据库怎么卖
it网络技术论坛