python3 打印文字文本图片

朋友公司让做的小功能,希望输入什么就在终端上把什么东西打印出来。比如输入python3 print.py hello,打印,可以设置字体,改变打印样式

 ***                       ***   ***
 ***                       ***   ***
 ***                       ***   ***
 ***                       ***   ***
 ***                       ***   ***
 ***                       ***   ***
 *** ******      *******   ***   ***     ********
 ***********    *********  ***   ***    **********
 *****  ****   *****  **** ***   ***   *****  *****
 ****    ***   ****   **** ***   ***   ****    ****
 ****    ***   ***     *** ***   ***   ***      ***
 ****    ***   *********** ***   ***   ***      ***
 ***     ***   *********** ***   ***   ***      ***
 ***     ***   ***         ***   ***   ***      ***
 ***     ***   ***      *  ***   ***   ****    ****
 ***     ***   *****  ***  ***   ***   *****  *****
 ***     ***    *********  ***   ***    **********
 ***     ***     ********  ***   ***     ********

 

环境是python3 ,直接上代码吧 ,使用python filename.py param运行

 

# coding=utf-8
from PIL import Image, ImageDraw, ImageFont
import sys

# 字体大小
fontSize = 22


def generateImg(str='Null'):
    _font = ImageFont.truetype(r"c:\windows\fonts\msyh.ttc", fontSize, index=1)
    # 画布
    _img = Image.new(mode='RGB', size=[fontSize * len(str) + 20, fontSize + 10], color=(255, 255, 255))
    # 画笔
    _draw = ImageDraw.Draw(_img, mode='RGB')
    # 写文本
    _draw.text([0, 0], str, (0, 0, 0), font=_font)
    # 返回图片数据
    return _img


if __name__ == "__main__":
    _str = "你好"
    # 判断是否有参数
    if len(sys.argv) > 1:
        print(sys.argv[1])
        _str = sys.argv[1]
    # 字符形状打印
    _my_img = generateImg(_str)
    # 宽高
    _weight = _my_img.size[0]
    _height = _my_img.size[1]
    # 查看图片
    # _my_img.show()
    # 遍历像素点
    for y in range(0, _height):
        for x in range(0, _weight):
            # print(_my_img.getpixel((x, y)))
            # 不等于背景r像素点 打印*
            if _my_img.getpixel((x, y))[0] != 255:
                print('*', end='')
            else:
                print(' ', end='')
        # 换行
        print()

 

发布了6 篇原创文章 · 获赞 3 · 访问量 1万+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章