前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >​python 文件代码转图片(2)

​python 文件代码转图片(2)

作者头像
叶子陪你玩
发布2022-04-04 16:20:58
1.2K0
发布2022-04-04 16:20:58
举报

昨天写的 python 代码转图片,只能将给定的一段代码转换成图片,要将一个文件夹的全部图片转换还需要自己处理一下,对于刚学的读者还有点难度,今天抽空完善了一下,使用也比较简单了。

使用方法:

更改自定义参数即可

文件夹内容:

只会转换python文件,其它文件跳过。

运行效果:

源代码:

代码语言:javascript
复制
# 导入模块
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)
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2022-02-28,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 叶子陪你玩编程 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档