国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

python生成帶有表格的圖片實例

2020-02-16 01:03:22
字體:
來源:轉載
供稿:網友

因為工作中需要,需要生成一個帶表格的圖片

例如:

直接在html中寫一個table標簽,然后單獨把表格部分保存成圖片

或者是直接將excel中的內容保存成一個圖片

剛開始的思路,是直接生成一個帶有table標簽的html文件,然后將這個文件轉成圖片,經過查找資料發現需要安裝webkit2png,而這個庫又依賴其他的東西,遂放棄。

當初的目標是直接生成一個圖片,并且是只需要安裝python依賴庫就行,而不需要在系統層面安裝相應的依賴包

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

python生成帶有表格的圖片

總體來說是分為兩個步驟:

使用prattytable將要展示的數據生成一個表格字符串

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

下面是具體實現:

from prettytable import PrettyTablefrom PIL import Image, ImageDraw, ImageFonttab = PrettyTable()# 設置表頭tab.field_names = ["Name", "Age","Country","City"]# 表格內容插入tab.add_row(['chal','23','中國','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模塊創建一個圖片對象im = Image.new('RGB',(10, 10),(0,0,0,0))# ImageDraw向圖片中進行操作,寫入文字或者插入線條都可以draw = ImageDraw.Draw(im, "RGB")# 根據插入圖片中的文字內容和字體信息,來確定圖片的最終大小img_size = draw.multiline_textsize(tab_info, font=font)# 圖片初始化的大小為10-10,現在根據圖片內容要重新設置圖片的大小im_new = im.resize((img_size[0]+space*2, img_size[1]+space*2))del drawdel imdraw = ImageDraw.Draw(im_new, 'RGB')# 批量寫入到圖片中,這里的multiline_text會自動識別換行符# python2draw.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

至此就生成了上面的圖片。但是還有一點問題,在使用中文時,表格會又一些錯列,應該是使用字體的事,因為我沒有找到合適的字體,所以這個問題暫時沒有解決。

以上這篇python生成帶有表格的圖片實例就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持武林站長站。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 利辛县| 天柱县| 郸城县| 桂平市| 云浮市| 区。| 沁水县| 光山县| 高雄市| 赞皇县| 呼玛县| 永善县| 临夏县| 铁岭市| 资中县| 仙居县| 张家港市| 澳门| 喀喇| 永定县| 东港市| 竹北市| 华阴市| 同仁县| 太谷县| 兖州市| 宣城市| 井陉县| 蒙阴县| 尉犁县| 顺平县| 荣昌县| 波密县| 建始县| 溧水县| 平江县| 和政县| 宁德市| 库伦旗| 宁安市| 天水市|