python表格导出为图片(python生成带有表格的图片实例)
类别:脚本大全 浏览量:2449
时间:2022-04-01 01:33:51 python表格导出为图片
python生成带有表格的图片实例因为工作中需要,需要生成一个带表格的图片
例如:
直接在html中写一个table标签,然后单独把表格部分保存成图片
或者是直接将excel中的内容保存成一个图片
刚开始的思路,是直接生成一个带有table标签的html文件,然后将这个文件转成图片,经过查找资料发现需要安装webkit.jpg" alt="python表格导出为图片(python生成带有表格的图片实例)" border="0" />
当初的目标是直接生成一个图片,并且是只需要安装python依赖库就行,而不需要在系统层面安装相应的依赖包
后来考虑使用python的图片处理库pillow,和生成表格式的库prattytable,下面的图片是最终生成的图片效果
总体来说是分为两个步骤:
使用prattytable将要展示的数据生成一个表格字符串
使用pillow,将生成的表格字符串写入到图片中
下面是具体实现:
|
from prettytable import prettytable from pil import image, imagedraw, imagefont tab = 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 draw del im draw = imagedraw.draw(im_new, 'rgb' ) # 批量写入到图片中,这里的multiline_text会自动识别换行符 # 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.jpg" alt="python表格导出为图片(python生成带有表格的图片实例)" border="0" /> del draw |
至此就生成了上面的图片。但是还有一点问题,在使用中文时,表格会又一些错列,应该是使用字体的事,因为我没有找到合适的字体,所以这个问题暂时没有解决。
以上这篇python生成带有表格的图片实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持开心学习网。
原文链接:https://blog.csdn.net/mx472756841/article/details/53363568
您可能感兴趣
- pythonexcel报表实例(对python生成业务报表的实例详解)
- python中读取文件怎么操作(Python实现的读取文件内容并写入其他文件操作示例)
- python类中的数据封装(基于python生成器封装的协程类)
- python编写端口扫描器(Python开发网站目录扫描器的实现)
- python虚拟变量教程(Python中psutil的介绍与用法)
- python切片的用法(Python进阶之全面解读高级特性之切片)
- pythontkinter详解(python3.6使用tkinter实现弹跳小球游戏)
- python多线程和多进程应用场景(Python多线程处理实例详解单进程/多进程)
- python编程开发环境步骤(python开发准备工作之配置虚拟环境非常重要)
- pythonhtml文件分析(对Python3 解析html的几种操作方式小结)
- python基本运算符编程(对Python3 * 和 ** 运算符详解)
- python中return 类的实例(Python实现Event回调机制的方法)
- 如何用python编写抽奖(详解用python写一个抽奖程序)
- python字典的值排序(python 对字典按照value进行排序的方法)
- python获取excelsheet名称(python查询文件夹下excel的sheet名代码实例)
- python将网站图片本地存储(详解Python下载图片并保存本地的两种方式)
- 《道德经》:功成不局,泰而不骄(道德经:功成不局)
- 每日一典 过江之鲫(每日一典过江之鲫)
- 红色代表什么(红色代表什么意义和象征)
- 菲律宾安全吗(菲律宾安全吗2023)
- 彩礼重要吗()
- 写信告诉我今天海是什么颜色(写信告诉我今天海是什么颜色回答)
热门推荐
- springbootvue数据交互系统(Springboot运用vue+echarts前后端交互实现动态圆环图)
- 简单的肖特基二极管电路(两个元祖T1='a', 'b',T2='c', 'd'使用匿名函数将其)
- docker清理占用空间(docker清理大杀器/docker的overlay文件占用磁盘太大的解决)
- 阿里云ubuntu系统(阿里云ubuntu16.04如何搭建pptpd服务)
- php把当前网页生成pdf(php转换上传word文件为PDF的方法基于COM组件)
- python配合docker(Docker构建python Flask+ nginx+uwsgi容器)
- sql server中cxpacket等待
- sql server存储过程详解(SQL Server存储过程中编写事务处理的方法小结)
- vue一个组件两种样式(Vue实现动态样式的多种方法汇总)
- mysql新增字段语句(关于Mysql update修改多个字段and的语法问题详析)
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9