美文网首页
python3自动生成签名图片

python3自动生成签名图片

作者: 尐尐西瓜妹 | 来源:发表于2019-02-28 14:39 被阅读0次

    最近公司架构做了一些调整,团队名、部门名都有发生一些变化,因为公司内部电邮都会带上一个个人签名,签名里面有姓名,职称,所属团队和部门,个人电话、电邮等等资讯,为了整个公司的统一形象,所以想利用python写一个脚本批量生成这些签名图片。

    这么多个人资料怎么导入呢,可以使用excel表,读取里面的值,再把这些值写入到一个图片中。因为栏位名称都是固定的,所以只用调整一次位置就可以给所有人使用了。

    废话不多说,上代码:

    # -*- coding:utf-8 -*-
    
    from PIL import Image, ImageDraw, ImageFont
    from openpyxl import load_workbook
    import time
    
    # open excel,读取里面的值
    wb = load_workbook('signature.xlsx')
    sheet = wb.active
    row = sheet.max_row
    
    # 设置字体样式
    font_type = '/System/Library/Fonts/STHeiti Light.ttc'
    font_medium_type = '/System/Library/Fonts/STHeiti Medium.ttc'
    name_font = ImageFont.truetype(font_medium_type, 55)
    title_font = ImageFont.truetype(font_medium_type, 45)
    font = ImageFont.truetype(font_type, 24)
    color = (0, 0, 255, 255)
    
    
    for l in range(1,row + 1):
        l = str(l)
        name = sheet['A'+l].value
        title = sheet['B'+l].value
        mobile = sheet['C'+l].value
        telephone = sheet['D'+l].value
        email = sheet['E'+l].value
        address = sheet['F'+l].value
        n = 18
        summary_list = [address[i:i + n] for i in range(0, len(address), n)]
    
        # 图片名称
        img = './template.jpg'  # 图片模板
        new_img = name + '.jpg'  # 生成的图片
        compress_img = name + '_compress.jpg'  # 压缩后的图片
    
        # 打开图片
        image = Image.open(img)
        draw = ImageDraw.Draw(image)
    
    
        # 写入name
        draw.text((190, 10),name,font=name_font,fill=color)
    
        # 写入title
        draw.text((650,10), title, font=title_font,fill=color)
    
        # 写入mobile
        draw.text((190,80), mobile, font=font,fill=color)
    
        # 写入telephont
        draw.text((650,80), telephone, font=font,fill=color)
    
        # 写入email
        draw.text((190,130), email, font=font,fill=color)
    
        # 写入address
        summary_line = 35
        for num, summary in enumerate(summary_list):
            y = num * summary_line
            draw.text((240, 170+y), summary, font=font,fill=color)
    
        # 生成图片
        image.save(new_img)
    

    这样无论有多少个人,都可以批量生成了。最后上一下效果图,因为本人不会ui设计,所以图做的很丑,大概看看就好,哈哈。


    相关文章

      网友评论

          本文标题:python3自动生成签名图片

          本文链接:https://www.haomeiwen.com/subject/dsihuqtx.html