最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

如何用Python中19行代碼把照片寫入到Excel中

 更新時間:2022年02月24日 08:50:01   作者:Carl_奕然  
這篇文章主要介紹了如何利用Python3中的19行代碼把照片寫入到Excel中,文章內(nèi)容實現(xiàn)的不是截取一張圖片,粘貼到excel,而是通過像素寫入到excel中,需要的朋友可以參考一下

1、前言

這里說的,不是截取一張圖片,粘貼到excel;而是通過像素寫入到excel中,下面來看看具體的實現(xiàn)過程吧

2、代碼實戰(zhàn)

2.1 思路

我們今天要分享的,是把圖片寫入到excel中,

我們來捋一下思路:

  • 準備源圖片,目標excel;
  • 通過Pillow 來讀圖片的取像素(RGB);
  • 通過openpyxlexcel cell內(nèi)填充十六進制色值;
  • 最后把轉(zhuǎn)換的RGB像素直接寫入到excel中;
  • 說到這里,就們就來分步實現(xiàn)。

2.2 文件準備

需要寫入而Excel的源圖片:

2.3 實戰(zhàn)

安裝:

本次需要用到兩個模塊: Pillow openpyxl 。

老規(guī)矩, pip 方式安裝:

pip install Pillow?
pip install openpyxl?

2.4 色值轉(zhuǎn)換

由于 圖片讀取的像素是RGB值,而excel是十六進制寫入,
所以需要定義一個RGB與十六進制轉(zhuǎn)換的函數(shù)

'''
定義RGB 和十六進制色值轉(zhuǎn)換函數(shù)
'''

def rgb_to_hex(rgb):
? ? rgb = rgb.split(',')
? ? color = ''
? ? #循環(huán)遍歷
? ? for i in rgb:
? ? ? ? num = int(i)
? ? ? ? color ?+= str(hex(num))[-2:].replace('x','0').upper()
? ? return ?color

2.5 圖片轉(zhuǎn)換

此操作是逐行讀取圖片的 RGB 色值,再將 RGB 色值轉(zhuǎn)換為十六進制色值填充到 Excel 的 cell 中。

逐行讀取圖片中的RGB色值,再將RGB色值轉(zhuǎn)換十六進制,填充到excel中:

def img_to_excel(img_path,excel_path):
? ? #讀取源圖片
? ? img_src = Image.open(img_path)
? ? #設(shè)置圖片寬高
? ? img_width = img_src.size[0]
? ? img_hight = img_src.size[1]

? ? #圖片加載
? ? str_strlist = img_src.load()
? ? #獲取當前的excel文件
? ? wb = openpyxl.Workbook()
? ? #保存文件
? ? wb.save(excel_path)
? ? #打開excel_path 下的excel文件,并寫入信息
? ? wb = openpyxl.load_workbook(excel_path)
? ? cell_width,cell_height = 1.0,1.0

? ? #設(shè)置excel的寫入頁
? ? sheet = wb['Sheet']

? ? #循環(huán)圖片的高與寬,并存入
? ? for w in range(img_width):
? ? ? ? for h in range(img_hight):
? ? ? ? ? ? data = str_strlist[w,h]
? ? ? ? ? ? color = str(data).replace("(","").replace(")","")
? ? ? ? ? ? color ?= rgb_to_hex(color)

? ? ? ? ? ? #設(shè)置填充顏色為color
? ? ? ? ? ? fille = PatternFill("solid",fgColor = color)
? ? ? ? ? ? sheet.cell(h + 1,w + 1).fill = fille

? ? #循環(huán)遍歷row,讓其全部寫入
? ? for i in range(1,sheet.max_row + 1):
? ? ? ? sheet.row_dimensions[i].height = cell_height
? ? #循環(huán)遍歷column,讓其全部寫入
? ? for i in range(1,sheet.max_column + 1):
? ? ? ? sheet.column_dimensions[get_column_letter(i)].width = cell_width

? ? #保存文件
? ? wb.save(excel_path)
? ? #關(guān)閉
? ? img_src.close()

2.6 代碼整合

import ?openpyxl
from openpyxl.styles import PatternFill
from openpyxl.utils import ?get_column_letter
from PIL import Image,ImageFont,ImageDraw,ImageColor


'''
色值轉(zhuǎn)換:
從圖片讀取的像素塊色值是 RGB 值,
RGB 和十六進制色值轉(zhuǎn)換。
'''

def rgb_to_hex(rgb):
? ? rgb = rgb.split(',')
? ? color = ''
? ? #循環(huán)遍歷
? ? for i in rgb:
? ? ? ? num = int(i)
? ? ? ? color ?+= str(hex(num))[-2:].replace('x','0').upper()
? ? return ?color


'''
圖片轉(zhuǎn)換:
逐行讀取圖片中的RGB色值,再將RGB色值轉(zhuǎn)換十六進制,填充到excel中
'''

def img_to_excel(img_path,excel_path):
? ? #讀取源圖片
? ? img_src = Image.open(img_path)
? ? #設(shè)置圖片寬高
? ? img_width = img_src.size[0]
? ? img_hight = img_src.size[1]

? ? #圖片加載
? ? str_strlist = img_src.load()
? ? #獲取當前的excel文件
? ? wb = openpyxl.Workbook()
? ? #保存文件
? ? wb.save(excel_path)
? ? #打開excel_path 下的excel文件,并寫入信息
? ? wb = openpyxl.load_workbook(excel_path)
? ? cell_width,cell_height = 1.0,1.0

? ? #設(shè)置excel的寫入頁
? ? sheet = wb['Sheet']

? ? #循環(huán)圖片的高與寬,并存入
? ? for w in range(img_width):
? ? ? ? for h in range(img_hight):
? ? ? ? ? ? data = str_strlist[w,h]
? ? ? ? ? ? color = str(data).replace("(","").replace(")","")
? ? ? ? ? ? color ?= rgb_to_hex(color)

? ? ? ? ? ? #設(shè)置填充顏色為color
? ? ? ? ? ? fille = PatternFill("solid",fgColor = color)
? ? ? ? ? ? sheet.cell(h + 1,w + 1).fill = fille

? ? #循環(huán)遍歷row,讓其全部寫入
? ? for i in range(1,sheet.max_row + 1):
? ? ? ? sheet.row_dimensions[i].height = cell_height
? ? #循環(huán)遍歷column,讓其全部寫入
? ? for i in range(1,sheet.max_column + 1):
? ? ? ? sheet.column_dimensions[get_column_letter(i)].width = cell_width

? ? #保存文件
? ? wb.save(excel_path)
? ? #關(guān)閉
? ? img_src.close()


if __name__ == '__main__':
? ? #源圖片地址
? ? img_path = './queue.jgp'
? ? #保存excel地址
? ? excel_path = './queue.xlsx'
? ? #執(zhí)行
? ? img_to_excel(img_path, excel_path)

2.7 運行結(jié)果

3、總結(jié)

這里提醒一下:
如果你的源圖片很大,運行完成后,打開Excel會提示文件損壞,
因為Excel的行數(shù)有限,導(dǎo)致無法全部寫完數(shù)據(jù)。

Excel報錯詳情:

xml報錯詳情:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<recoveryLog xmlns="http://schemas.openxmlformats.org/spreadsheetml/2006/main"><logFileName>error254800_05.xml</logFileName><summary>在文件“D:\Project\img\king.xlsx”中檢測到錯誤</summary><removedParts><removedPart>已刪除的部件: 部件 /xl/styles.xml。 (樣式)</removedPart></removedParts><repairedRecords><repairedRecord>已修復(fù)的記錄: /xl/worksheets/sheet1.xml 部分的 單元格信息</repairedRecord></repairedRecords></recoveryLog>

到此這篇關(guān)于如何用Python中19行代碼把照片寫入到Excel中的文章就介紹到這了,更多相關(guān)Python3把照片寫入到Excel中內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Python?FastAPI?Sanic?Tornado?與Golang?Gin性能實戰(zhàn)對比

    Python?FastAPI?Sanic?Tornado?與Golang?Gin性能實戰(zhàn)對比

    本文將深入比較Python的FastAPI、Sanic、Tornado以及Golang的Gin框架的各種特性、性能表現(xiàn)以及適用場景,通過詳實的性能測試和實際示例代碼,將探討它們在構(gòu)建現(xiàn)代高性能應(yīng)用中的優(yōu)劣勢,以便開發(fā)者根據(jù)需求做出明智的選擇
    2024-01-01
  • 詳解python中自定義超時異常的幾種方法

    詳解python中自定義超時異常的幾種方法

    這篇文章主要介紹了詳解python中自定義超時異常的幾種方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-07-07
  • 使用PyQt5編寫一個簡單的取色器

    使用PyQt5編寫一個簡單的取色器

    這篇文章主要為大家介紹了PyQt5搭建的一個取色器,一共寫了兩款應(yīng)用,一款使用快捷鍵捕獲鼠標附近圖像的RGB和16進制顏色編碼,一款跟隨鼠標刷新圖像的RGB和16進制顏色編碼,希望對大家有所幫助
    2025-01-01
  • Python + selenium自動化環(huán)境搭建的完整步驟

    Python + selenium自動化環(huán)境搭建的完整步驟

    這篇文章主要給大家介紹了關(guān)于Python + selenium自動化環(huán)境搭建的相關(guān)資料,文中通過圖文將實現(xiàn)的步驟一步步介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面來一起看看吧
    2018-05-05
  • Python googletrans庫使用示例詳解

    Python googletrans庫使用示例詳解

    googletrans是一個基于谷歌翻譯API的Python庫,支持多種語言的自動檢測和翻譯,提供了translate和detect方法,用于翻譯文本和檢測文本語言,通過簡單的命令即可安裝使用,適合需要實現(xiàn)多語言翻譯功能的開發(fā)者
    2024-09-09
  • Python中Pickle模塊和base64模塊的使用解析

    Python中Pickle模塊和base64模塊的使用解析

    這篇文章主要介紹了Python中Pickle模塊和base64模塊的使用解析,pickle模塊是python的標準模塊,提供了對于python數(shù)據(jù)的序列化操作,可以將數(shù)據(jù)轉(zhuǎn)換為bytes類型,其序列化速度比json模塊要高,需要的朋友可以參考下
    2023-09-09
  • python高級特性簡介

    python高級特性簡介

    這篇文章主要介紹了python高級特性的相關(guān)內(nèi)容,其中包括切片,迭代,列表生成式,生成器,迭代器,感興趣的朋友可以了解下
    2020-08-08
  • django 通過url實現(xiàn)簡單的權(quán)限控制的例子

    django 通過url實現(xiàn)簡單的權(quán)限控制的例子

    今天小編就為大家分享一篇django 通過url實現(xiàn)簡單的權(quán)限控制的例子,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-08-08
  • python集合的新增元素方法整理

    python集合的新增元素方法整理

    在本篇文章里小編給大家整理了一篇關(guān)于python集合的新增元素方法整理內(nèi)容,有需要的朋友們可以學習下。
    2020-12-12
  • 利用?Python?開發(fā)一個?Python?解釋器

    利用?Python?開發(fā)一個?Python?解釋器

    這篇文章主要介紹了利用?Python?開發(fā)一個?Python?解釋器,在本文中,我們將設(shè)計一個可以執(zhí)行算術(shù)運算的解釋器。下面我們大家一起來看看吧</P><P>
    2022-01-01

最新評論

巫山县| 西城区| 裕民县| 山东| 双鸭山市| 固原市| 泰顺县| 广灵县| 吕梁市| 奉新县| 合山市| 怀宁县| 昌黎县| 建德市| 黑水县| 张北县| 白银市| 丹巴县| 南溪县| 长沙市| 台东县| 新郑市| 奉贤区| 三原县| 衢州市| 航空| 涿州市| 汝南县| 镇巴县| 北辰区| 碌曲县| 延安市| 普定县| 泗阳县| 平昌县| 庆安县| 黎平县| 博兴县| 乌什县| 甘德县| 镶黄旗|