昨天写的 python 代码转图片,只能将给定的一段代码转换成图片,要将一个文件夹的全部图片转换还需要自己处理一下,对于刚学的读者还有点难度,今天抽空完善了一下,使用也比较简单了。
使用方法:
更改自定义参数即可
文件夹内容:
只会转换python文件,其它文件跳过。
运行效果:
源代码:
# 导入模块
from PIL import Image,ImageDraw,ImageFont
import os
def create_img2(text,img_name,font_color="white",font_size=40,bg_color="black",bg_size=(400,320)):
"""
text:写入的内容
font_color:字体颜色
font_size:字体大小
bg_color:图片背景色
bg_size:图片尺寸 默认400 320
"""
# 新建空白黄色图片
img = Image.new("RGB", bg_size, bg_color)
# 将图片转换成绘图可编辑模式
draw = ImageDraw.Draw(img)
# 创建字体对象,字体大小40
font = ImageFont.truetype("fangzheng.ttf", font_size) # 中英文文字
# font = ImageFont.truetype("arial.ttf", font_size) # 英文文字
# 获取写入内容的宽高
w, h = draw.textsize(text,font=font)
# 新建空白黄色图片
img = Image.new("RGB", (w+60,h+40), bg_color)
# 获取图片的宽高
W,H=img.size
# 将图片转换成绘图可编辑模式
draw = ImageDraw.Draw(img)
#在图片中间位置 写入内容,文字颜色
draw.text(((W-w)/2,(H-h)/2), text, fill=font_color,font=font)
# 保存图片
img.save("{}.jpg".format(img_name))
def load_fileDir(Dir):
"""
:param Dir:文件夹
:return:py_filename_list
"""
py_filename_list = []
files_dir = list(os.walk(Dir))[0][0]
files_py = list(os.walk(Dir))[0][2]
for file in files_py:
if ".py" in file:
file_py = os.path.join(files_dir,file)
py_filename_list.append(file_py)
return py_filename_list
def read_py_file(filename):
"""
:param filename:python文件名
:return:content:文件代码,prefix:文件名称
"""
with open(filename,"r",encoding="utf-8") as f:
content = f.read()
prefix = os.path.splitext(filename)[0]
return content,prefix
# 主函数
def main(Dir,font_color,font_size,bg_color):
# 获取文件夹中的所有 py 文件
py_filename_list = load_fileDir(Dir)
print("一共有{}个 python 文件待转换".format(len(py_filename_list)))
print("---开始转换---")
for i in range(len(py_filename_list)):
content,img_name = read_py_file(py_filename_list[i])
create_img2(content,img_name,font_color=font_color,font_size = font_size,bg_color = bg_color)
print("第{}个文件:{} 转换成功".format(i+1,os.path.basename(py_filename_list[i])))
print("---转换完成---")
print("图片文件保存在 ## {} ## 文件夹中".format(Dir))
if __name__ == "__main__":
# 自定义参数
font_color = "white" # 字体颜色
font_size = 40 # 文字大小
bg_color = "black" # 背景颜色
Dir = "代码" # 代码文件夹
# 生成图片
main(Dir,font_color,font_size,bg_color)