情人节闲着无聊写个python程序

用python在图片上写字

'''
依赖,需要安装Pillow
pip install Pillow
'''
from PIL import Image, ImageDraw, ImageFont
import sys #判断参数个数,可以不要
import os  #判断文件是否存在,可以不要

image_path = "1.jpg"
font_path = "SIMLI.TTF"
text = "情人节快乐!"
font_size = 10


###########这几个判断用来支持命令行参数#######
if len(sys.argv)>1:
    path = sys.argv[1]
    if os.path.exists(path):
        image_path = path
        
if len(sys.argv)>2:
    path = sys.argv[2]
    if os.path.exists(path):
        font_path = path
        
if len(sys.argv)>3:
    text = sys.argv[3]
    
if len(sys.argv)>4:
    if sys.argv[4].isdigit():
        font_size = int(sys.argv[4])
#############################################

def generator_new_image(image_path, font_path, text, font_size):
    img_origin = Image.open(image_path)
    img_array = img_origin.load()
    img_new = Image.new("RGB", img_origin.size, (0,0,0))
    draw = ImageDraw.Draw(img_new)
    font = ImageFont.truetype(font_path, font_size)
    
    index = 0
    for y in range(0, img_origin.size[1], font_size):
        for x in range(0,img_origin.size[0], font_size):
            index = index % len(text)
            draw.text((x,y), text[index], font=font, fill=img_array[x,y], direction=None)
            index = index + 1
            
    img_new.convert("RGB").save("holiday.jpg")

generator_new_image(image_path, font_path, text, font_size)

效果

评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值