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

Python 居然可以在 Excel 中畫畫你知道嗎

 更新時間:2022年02月15日 15:48:46   作者:迢迢x  
哈嘍,哈嘍~對于Excel大家想到的是不是各種圖表制作,今天我們來個不一樣的。十字繡大家都知道吧,今天咱們來玩?zhèn)€電子版的十字繡

導(dǎo)語:

用 Python 讀取圖片的像素值,然后輸出到 Excel 表格中,最終形成一幅像素畫,也就是電子版的十字繡了。

基本思路

實(shí)現(xiàn)這個需求的基本思路是讀取這張圖片每一個像素的色彩值,然后給 excel 里的每一個單元格填充上顏色。既然要讀取圖片,那就需要用到 Pillow 庫,操作 Excel 需要用到 openpyxl 庫,先把這兩個庫安裝好。

pip3 install openpyxl
pip3 install Pillow

色值轉(zhuǎn)換

從圖片讀取的像素塊色值是 RGB 值,而 openpyxl 向 Excel cell 內(nèi)填充顏色是十六進(jìn)制色值,因此咱們先寫一個 RGB 和十六進(jìn)制色值轉(zhuǎn)換的一個函數(shù)。

def rgb_to_hex(rgb):
    rgb = rgb.split(',')
    color = ''
    for i in RGB:
        num = int(i)
        color += str(hex(num))[-2:].replace('x', '0').upper()
    return color

excel 的單元格默認(rèn)是長方形,修改為正方形才不會使圖片變形

if h == 1:
  _w = cell.column
  _h = cell.col_idx
  # 調(diào)整列寬
  worksheet.column_dimensions[_w].width = 1
 
# 調(diào)整行高
worksheet.row_dimensions[h].height = 6

這里用到了雙重for循環(huán),外層是`width`,里層是`height`,是一列一列的填充顏色,因此判斷`if h == 1`,避免多次調(diào)整列寬。

圖片轉(zhuǎn)換

有了色值轉(zhuǎn)換函數(shù),接下來要做的操作就是逐行讀取圖片的 RGB 色值,之后將 RGB 色值轉(zhuǎn)換為十六進(jìn)制色值填充到 Excel 的 cell 中即可。

def img2excel(img_path, excel_path):
    img_src = Image.open(img_path)
    # 圖片寬高
    img_width = img_src.size[0]
    img_height = img_src.size[1]
 
    str_strlist = img_src.load()
    wb = openpyxl.Workbook()
    wb.save(excel_path)
    wb = openpyxl.load_workbook(excel_path)
    cell_width, cell_height = 1.0, 1.0
 
    sheet = wb["Sheet"]
    for w in range(img_width):
        for h in range(img_height):
            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
    for i in range(1, sheet.max_row + 1):
        sheet.row_dimensions[i].height = cell_height
    for i in range(1, sheet.max_column + 1):
        sheet.column_dimensions[get_column_letter(i)].width = cell_width
    wb.save(excel_path)
    img_src.close()

最后再來個入口函數(shù),就大功告成啦~

if __name__ == '__main__':
    img_path = '/Users/xyz/Documents/tmp/03.png'
    excel_path = '/Users/xyz/Documents/tmp/3.xlsx'
    img2excel(img_path, excel_path)

驚艷時刻

激動的心,顫抖的手,來看下最終效果咋樣。

怎么樣是不是覺得有那么一絲絲韻味呢...

總結(jié)

好啦今日代碼分享就到這了,喜歡的記得收藏噢~

到此這篇關(guān)于Python 居然可以在 Excel 中畫畫你知道嗎的文章就介紹到這了,更多相關(guān)Python Excel畫畫內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • python3.6環(huán)境下安裝freetype庫和基本使用方法(推薦)

    python3.6環(huán)境下安裝freetype庫和基本使用方法(推薦)

    這篇文章主要介紹了python3.6環(huán)境下如何安裝freetype庫和基本使用方法,本文通過示例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-05-05
  • Python實(shí)現(xiàn)新型冠狀病毒傳播模型及預(yù)測代碼實(shí)例

    Python實(shí)現(xiàn)新型冠狀病毒傳播模型及預(yù)測代碼實(shí)例

    在本篇文章里小編給大家整理的是關(guān)于Python實(shí)現(xiàn)新型冠狀病毒傳播模型及預(yù)測代碼內(nèi)容,有興趣的朋友們可以學(xué)習(xí)下。
    2020-02-02
  • 詳解python數(shù)據(jù)結(jié)構(gòu)和算法

    詳解python數(shù)據(jù)結(jié)構(gòu)和算法

    這篇文章主要介紹了python數(shù)據(jù)結(jié)構(gòu)和算法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-04-04
  • Python3.7安裝pyaudio教程解析

    Python3.7安裝pyaudio教程解析

    這篇文章主要介紹了Python3.7安裝pyaudio教程解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-07-07
  • pytorch 實(shí)現(xiàn)二分類交叉熵逆樣本頻率權(quán)重

    pytorch 實(shí)現(xiàn)二分類交叉熵逆樣本頻率權(quán)重

    這篇文章主要介紹了pytorch 實(shí)現(xiàn)二分類交叉熵逆樣本頻率權(quán)重的操作,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-05-05
  • python怎么對數(shù)字進(jìn)行過濾

    python怎么對數(shù)字進(jìn)行過濾

    在本篇內(nèi)容中小編給大家整理的是關(guān)于python怎么對數(shù)字進(jìn)行過濾的實(shí)例方法內(nèi)容,需要的朋友們可以參考下。
    2020-07-07
  • Python參數(shù)、參數(shù)類型、位置參數(shù)、默認(rèn)參數(shù)、可選參數(shù)舉例詳解

    Python參數(shù)、參數(shù)類型、位置參數(shù)、默認(rèn)參數(shù)、可選參數(shù)舉例詳解

    這篇文章主要介紹了Python?3.13中函數(shù)參數(shù)的不同類型,包括位置參數(shù)、默認(rèn)值參數(shù)、可變參數(shù)、關(guān)鍵字參數(shù)、命名關(guān)鍵字參數(shù)以及它們的組合使用規(guī)則,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2025-01-01
  • Django實(shí)現(xiàn)表單驗證

    Django實(shí)現(xiàn)表單驗證

    這篇文章主要為大家詳細(xì)介紹了Django實(shí)現(xiàn)表單驗證的相關(guān)資料,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-09-09
  • 淺析Python 中整型對象存儲的位置

    淺析Python 中整型對象存儲的位置

    下面小編就為大家?guī)硪黄獪\析Python 中整型對象存儲的位置。小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考,一起跟隨小編過來看看吧
    2016-05-05
  • python如何給字典的鍵對應(yīng)的值為字典項的字典賦值

    python如何給字典的鍵對應(yīng)的值為字典項的字典賦值

    這篇文章主要介紹了python如何給字典的鍵對應(yīng)的值為字典項的字典賦值,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-07-07

最新評論

仙居县| 西盟| 广南县| 曲松县| 江口县| 淳安县| 南木林县| 灵台县| 讷河市| 堆龙德庆县| 广宁县| 青川县| 台东县| 永康市| 常州市| 保康县| 额济纳旗| 阿克陶县| 桓仁| 汉阴县| 武山县| 长汀县| 富宁县| 神池县| 五河县| 沧源| 汕尾市| 许昌市| 綦江县| 古蔺县| 承德县| 桂林市| 原平市| 武宣县| 论坛| 桂东县| 安仁县| 石泉县| 丹凤县| 游戏| 辽宁省|