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背后可爱的程序员们致敬!
谢谢你们改变了世界,
让我们的生活有如此多惊喜!