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萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章