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

python生成帶有表格的圖片實(shí)例

 更新時(shí)間:2019年02月03日 13:08:49   作者:秋楓-山高人為峰  
今天小編就為大家分享一篇python生成帶有表格的圖片實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧

因?yàn)楣ぷ髦行枰?,需要生成一個(gè)帶表格的圖片

例如:

直接在html中寫一個(gè)table標(biāo)簽,然后單獨(dú)把表格部分保存成圖片

或者是直接將excel中的內(nèi)容保存成一個(gè)圖片

剛開(kāi)始的思路,是直接生成一個(gè)帶有table標(biāo)簽的html文件,然后將這個(gè)文件轉(zhuǎn)成圖片,經(jīng)過(guò)查找資料發(fā)現(xiàn)需要安裝webkit2png,而這個(gè)庫(kù)又依賴其他的東西,遂放棄。

當(dāng)初的目標(biāo)是直接生成一個(gè)圖片,并且是只需要安裝python依賴庫(kù)就行,而不需要在系統(tǒng)層面安裝相應(yīng)的依賴包

后來(lái)考慮使用Python的圖片處理庫(kù)Pillow,和生成表格式的庫(kù)prattytable,下面的圖片是最終生成的圖片效果

python生成帶有表格的圖片

總體來(lái)說(shuō)是分為兩個(gè)步驟:

使用prattytable將要展示的數(shù)據(jù)生成一個(gè)表格字符串

使用pillow,將生成的表格字符串寫入到圖片中

下面是具體實(shí)現(xiàn):

from prettytable import PrettyTable
from PIL import Image, ImageDraw, ImageFont
tab = PrettyTable()
# 設(shè)置表頭
tab.field_names = ["Name", "Age","Country","City"]
# 表格內(nèi)容插入
tab.add_row(['chal','23','中國(guó)','Shanghai'])
tab.add_row(['charle','29','China','Xuzhou'])
tab.add_row(['jack','32','United States','Washington'])
tab_info = str(tab)
space = 5

# PIL模塊中,確定寫入到圖片中的文本字體
font = ImageFont.truetype('/home/doge/YaHeiConsolas.ttf', 15, encoding='utf-8')
# Image模塊創(chuàng)建一個(gè)圖片對(duì)象
im = Image.new('RGB',(10, 10),(0,0,0,0))
# ImageDraw向圖片中進(jìn)行操作,寫入文字或者插入線條都可以
draw = ImageDraw.Draw(im, "RGB")
# 根據(jù)插入圖片中的文字內(nèi)容和字體信息,來(lái)確定圖片的最終大小
img_size = draw.multiline_textsize(tab_info, font=font)
# 圖片初始化的大小為10-10,現(xiàn)在根據(jù)圖片內(nèi)容要重新設(shè)置圖片的大小
im_new = im.resize((img_size[0]+space*2, img_size[1]+space*2))
del draw
del im
draw = ImageDraw.Draw(im_new, 'RGB')
# 批量寫入到圖片中,這里的multiline_text會(huì)自動(dòng)識(shí)別換行符
# python2
draw.multiline_text((space,space), unicode(tab_info, 'utf-8'), fill=(255,255,255), font=font)
# python3
# draw.multiline_text((space,space), tab_info, fill=(255,255,255), font=font)

im_new.save('12345.PNG', "PNG")
del draw

至此就生成了上面的圖片。但是還有一點(diǎn)問(wèn)題,在使用中文時(shí),表格會(huì)又一些錯(cuò)列,應(yīng)該是使用字體的事,因?yàn)槲覜](méi)有找到合適的字體,所以這個(gè)問(wèn)題暫時(shí)沒(méi)有解決。

以上這篇python生成帶有表格的圖片實(shí)例就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Python獲取時(shí)光網(wǎng)電影數(shù)據(jù)的實(shí)例代碼

    Python獲取時(shí)光網(wǎng)電影數(shù)據(jù)的實(shí)例代碼

    這篇文章主要介紹了Python獲取時(shí)光網(wǎng)電影數(shù)據(jù),基本原理是先通過(guò)requests庫(kù),通過(guò)時(shí)光網(wǎng)自帶的電影數(shù)據(jù)API接口,獲取到指定的電影數(shù)據(jù),本文結(jié)合示例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2022-09-09
  • 學(xué)習(xí)Python列表的基礎(chǔ)知識(shí)匯總

    學(xué)習(xí)Python列表的基礎(chǔ)知識(shí)匯總

    本文給大家匯總介紹了學(xué)習(xí)Python列表的一些基礎(chǔ)知識(shí),有了這份python列表的資料,對(duì)大家初識(shí)Python列表會(huì)非常有幫助,希望大家喜歡
    2020-03-03
  • Python機(jī)器學(xué)習(xí)之手寫KNN算法預(yù)測(cè)城市空氣質(zhì)量

    Python機(jī)器學(xué)習(xí)之手寫KNN算法預(yù)測(cè)城市空氣質(zhì)量

    KNN(K-Nearest Neighbor)最鄰近分類算法是數(shù)據(jù)挖掘分類(classification)技術(shù)中常用算法之一,本文將介紹如何通過(guò)KNN算法實(shí)現(xiàn)城市空氣質(zhì)量的預(yù)測(cè),感興趣的同學(xué)可以了解一下
    2021-12-12
  • Python?selenium?find_element()示例詳解

    Python?selenium?find_element()示例詳解

    selenium定位元素的函數(shù)/方法可以分為兩類:find_element及find_elements,下面這篇文章主要給大家介紹了關(guān)于Python?selenium?find_element()的相關(guān)資料,需要的朋友可以參考下
    2022-07-07
  • Python PIL圖片添加字體的例子

    Python PIL圖片添加字體的例子

    今天小編就為大家分享一篇Python PIL圖片添加字體的例子,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-08-08
  • Django JWT Token RestfulAPI用戶認(rèn)證詳解

    Django JWT Token RestfulAPI用戶認(rèn)證詳解

    這篇文章主要介紹了Django JWT Token RestfulAPI用戶認(rèn)證詳解,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2019-01-01
  • 關(guān)于python變量的引用以及在底層存儲(chǔ)原理

    關(guān)于python變量的引用以及在底層存儲(chǔ)原理

    Python的變量,簡(jiǎn)單來(lái)說(shuō)有數(shù)值型,布爾型,字符串類型,列表,元組,字典等6大類。那么不同變量類型在底層是如何存儲(chǔ)的,關(guān)系到變量的引用,能否正確的掌握變量的相關(guān)操作?接下來(lái)小編就來(lái)為大家講解python變量的引用以及在底層存儲(chǔ)原理,需要的朋友可以參考一下
    2021-09-09
  • Python中accumulate函數(shù)的用法詳解

    Python中accumulate函數(shù)的用法詳解

    累積(accumulate)函數(shù)是Python標(biāo)準(zhǔn)庫(kù)itertools中的一個(gè)強(qiáng)大工具,用于對(duì)可迭代對(duì)象進(jìn)行累積操作,下面我們將深入探討accumulate函數(shù)的用法,感興趣的小伙伴可以了解下
    2023-11-11
  • Pandas搭配lambda組合使用詳解

    Pandas搭配lambda組合使用詳解

    大家好,在之前文章中,我們介紹了很多 Python 用法。喜歡的朋友可以看一下歷史文章。今天我給大家講講lambda與pandas模塊配合使用方法,熟練掌握可以極大地提高數(shù)據(jù)分析與挖掘的效率
    2022-01-01
  • django的模型類管理器——數(shù)據(jù)庫(kù)操作的封裝詳解

    django的模型類管理器——數(shù)據(jù)庫(kù)操作的封裝詳解

    這篇文章主要介紹了django的模型類管理器——數(shù)據(jù)庫(kù)操作的封裝詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-04-04

最新評(píng)論