Hello,1024背後可愛的人兒

1024節,我也湊個熱鬧。

讓我們用在命令行裏把上面這個圖片用字符打印出來吧!

代碼如下:

# 用PIL包:

from PIL import Image

# 用於打印字符畫的字符集:
ascii_char = list("$@B%8&WM#*oahkbdpqwmZO0QLCJUYXzcvunxrjft/\|()1{}[]?-_+~<>i!lI;:,\"^`'. ")

# 將像素值轉換爲對應的字符:
def rgb_to_char(r, g, b, alpha=256):
    if alpha == 0:        
        return ' '
    length = len(ascii_char)
    gray = int(0.2126 * r + 0.7152 * g + 0.0722 * b)
    unit = (256.0 + 1) / length    
    return ascii_char[int(gray / unit)]

# 生成字符畫
def createCodePic(img_path):
    img = Image.open(img_path)
    img = img.resize((100, 30))
    size = img.size
    width = size[0]
    height = size[1]
    pimg = img.load()

    txt = ""
    for i in range(height):        
        for j in range(width):
            r = pimg[j, i][0]
            g = pimg[j, i][1]
            b = pimg[j, i][2]
            txt = txt + rgb_to_char(r, g, b, alpha=256)

        txt = txt + "\n"
    print(txt)

createCodePic('hello.jpg')

得到:

讓我們向1024背後可愛的程序員們致敬!

謝謝你們改變了世界,

讓我們的生活有如此多驚喜!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章