千家信息网

Python如何实现图像的二进制与base64互转

发表于:2026-11-03 作者:千家信息网编辑
千家信息网最后更新 2026年11月03日,这篇"Python如何实现图像的二进制与base64互转"文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我
千家信息网最后更新 2026年11月03日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安全错误 数据库的锁怎样保障安全 保险科技 互联网保险 湖北九亚互联网络科技有限公司 新华互联网科技学校 A股互联网金融科技公司 互联网科技与金融科技 美国互联网黑科技 互联网科技的未来发展 互联网高科技企业 互联网科技大会 一五八零互联网科技 山东吉时兔互联网科技有限公司 荆州市昕露互联网络科技有限公司 千方科技属于互联网企业吗 互联网5g黑科技有哪些 沐思想互联网科技有限公司 锡山区互联网智能科技产品供应 每天都有哪些好的互联网科技 银行科技岗属于互联网吗 广州千川互联网科技有限公司 知域互联网科技有限公司官网 博彦科技互联网金融 亿人帮互联网科技有限公司 奇酷互联网科技 智慧科技互联网 顺网科技2021年互联网排名 富国互联网科技创新基金 云创客互联网科技公司 福州新华互联网科技学校 知乎 求路客互联网科技电话 互联网科技大佬云集
0