欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

python圖片和二進制轉(zhuǎn)換的三種實現(xiàn)方式

 更新時間:2024年09月14日 11:26:25   作者:臉不大的CVer  
本文介紹了將PIL格式、數(shù)組和圖片轉(zhuǎn)換為二進制的不同方法,包括使用PIL庫、OpenCV和直接讀取二進制,此外,還提到了數(shù)據(jù)傳輸中base64格式的應用,這些信息對需要進行圖片數(shù)據(jù)處理和轉(zhuǎn)換的開發(fā)者非常有用

PIL格式轉(zhuǎn)二進制

先讀取為PIL格式,再轉(zhuǎn)為二進制

import io
import base64
from PIL import Image

def image2byte(image):
    '''
    圖片轉(zhuǎn)byte
    image: 必須是PIL格式
    image_bytes: 二進制
    '''
    # 創(chuàng)建一個字節(jié)流管道
    img_bytes = io.BytesIO()
    # 將圖片數(shù)據(jù)存入字節(jié)流管道, format可以按照具體文件的格式填寫
    image.save(img_bytes, format="JPEG")
    # 從字節(jié)流管道中獲取二進制
    image_bytes = img_bytes.getvalue()
    return image_bytes

def byte2image(byte_data):
    '''
    byte轉(zhuǎn)為圖片
    byte_data: 二進制
    '''
    image = Image.open(io.BytesIO(byte_data))
    return image

調(diào)用代碼

image_path = "img/3.jpg"
image = Image.open(image_path)
byte_data = image2byte(image)
image2 = byte2image(byte_data)

數(shù)組轉(zhuǎn)二進制

先用opencv讀取為數(shù)組格式,再轉(zhuǎn)為二進制

def numpy2byte(image):
    '''
    數(shù)組轉(zhuǎn)二進制
    image : numpy矩陣/cv格式圖片
    byte_data:二進制數(shù)據(jù)
    '''
    #對數(shù)組的圖片格式進行編碼
    success,encoded_image = cv2.imencode(".jpg",image)
    #將數(shù)組轉(zhuǎn)為bytes
    byte_data = encoded_image.tobytes()
    return byte_data
def byte2numpy(byte_data):
    '''
    byte轉(zhuǎn)numpy矩陣/cv格式
    byte_data:二進制數(shù)據(jù)
    image : numpy矩陣/cv格式圖片
    '''
    image = np.asarray(bytearray(byte_data), dtype="uint8")
    image = cv2.imdecode(image, cv2.IMREAD_COLOR)
    return image

調(diào)用代碼

image_path = "img/3.jpg"
image = cv2.imread(image_path)
byte_data = numpy2byte(image)
image2 = byte2numpy(byte_data)

圖片轉(zhuǎn)二進制

直接讀取圖片為二進制

import cv2
import numpy as np

def read2byte(path):
    '''
    圖片轉(zhuǎn)二進制
    path:圖片路徑
    byte_data:二進制數(shù)據(jù)
    '''
    with open(path,"rb") as f:
        byte_data = f.read()
    return byte_data

def byte2numpy(byte_data):
    '''
    byte轉(zhuǎn)numpy矩陣/cv格式
    byte_data:二進制數(shù)據(jù)
    image : numpy矩陣/cv格式圖片
    '''
    image = np.asarray(bytearray(byte_data), dtype="uint8")
    image = cv2.imdecode(image, cv2.IMREAD_COLOR)
    return image

調(diào)用代碼

image_path = "img/3.jpg"

byte_data = read2byte(image_path)
image = byte2numpy(byte_data)

延伸

有時候數(shù)據(jù)傳輸規(guī)定轉(zhuǎn)換為base64格式,可以參考我的另一篇文章 圖片和base64轉(zhuǎn)換的三種方式

總結(jié)

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Django+Nginx+uWSGI 定時任務的實現(xiàn)方法

    Django+Nginx+uWSGI 定時任務的實現(xiàn)方法

    本文主要介紹了Django+Nginx+uWSGI 定時任務的實現(xiàn)方法,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-01-01
  • python3實現(xiàn)微型的web服務器

    python3實現(xiàn)微型的web服務器

    這篇文章主要為大家詳細介紹了python3實現(xiàn)一個微型的web服務器,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-09-09
  • Python使用configparser庫讀取配置文件

    Python使用configparser庫讀取配置文件

    這篇文章主要介紹了Python使用configparser庫讀取配置文件,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-02-02
  • Python尾遞歸優(yōu)化實現(xiàn)代碼及原理詳解

    Python尾遞歸優(yōu)化實現(xiàn)代碼及原理詳解

    這篇文章主要介紹了Python尾遞歸優(yōu)化實現(xiàn)代碼及原理詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-10-10
  • python算法學習雙曲嵌入論文代碼實現(xiàn)數(shù)據(jù)集介紹

    python算法學習雙曲嵌入論文代碼實現(xiàn)數(shù)據(jù)集介紹

    由于雙曲嵌入相關(guān)的文章已經(jīng)有了一系列的代碼。本篇博客主要目的實現(xiàn)最開始的雙曲嵌入論文,將論文中有些直接寫出來的內(nèi)容進行了細節(jié)的推導,同時實現(xiàn)對應的代碼
    2021-11-11
  • Python學習Turtle庫畫對稱勾股樹體會分形驚艷

    Python學習Turtle庫畫對稱勾股樹體會分形驚艷

    這篇文章主要為大家介紹了Python學習中如何使用Turtle庫畫對稱勾股樹,從而體會到分形世界的驚艷,文中附含詳細示例代碼有需要的朋友可以借鑒參考下
    2021-09-09
  • Pycharm正版2022.2.2?官方翻譯插件更新tkk失敗不能用問題及解決方案

    Pycharm正版2022.2.2?官方翻譯插件更新tkk失敗不能用問題及解決方案

    這篇文章主要介紹了Pycharm正版2022.2.2?|?官方翻譯插件更新tkk失敗解決,?出現(xiàn)tkk問題的是這個翻譯插件,本教程只解決該翻譯插件不能用的問題,需要的朋友可以參考下
    2022-11-11
  • python中圖形庫turtle庫詳解(適用于計算機二級)

    python中圖形庫turtle庫詳解(適用于計算機二級)

    Turtle庫是Python語言中的一個圖形庫,可以用來繪制各種形狀,如線條、矩形、圓形等等,下面這篇文章主要給大家介紹了關(guān)于python中圖形庫turtle庫的相關(guān)資料,文中通過代碼介紹的非常詳細,需要的朋友可以參考下
    2024-08-08
  • 分析用Python腳本關(guān)閉文件操作的機制

    分析用Python腳本關(guān)閉文件操作的機制

    這篇文章主要介紹了分析用Python腳本關(guān)閉文件操作的機制,作者分Python2.x版本和3.x版本兩種情況進行了闡述,需要的朋友可以參考下
    2015-06-06
  • python中g(shù)lobal與nonlocal比較

    python中g(shù)lobal與nonlocal比較

    這篇文章主要介紹了python中g(shù)lobal與nonlocal比較,global關(guān)鍵字用來在函數(shù)或其他局部作用域中使用全局變量,nonlocal關(guān)鍵字用來在函數(shù)或其他作用域中使用外層(非全局)變量,需要的朋友可以參考下
    2014-11-11

最新評論