Python图片转字符画
源图片:
效果图:
第三方库:PIL
如果没有安装该库请执行 pip install pillow 进行安装第三方库
# -*- coding: utf-8 -*- from PIL import Image, ImageDraw, ImageFont import os import time def save(img, file_name): if os.path.isfile(file_name + '.jpg'): save(img, file_name + '-') else: img.save(file_name + '.jpg', 'JPEG') font_map = [' ', '.', 'i', 'I', 'J', 'C', 'D', 'O', 'S', 'Q', 'G', 'F', 'E', '#', '&', '@'] img_name = 'convert1' # 图片文件名 f_size = 16 f_num_x = 100 def main(): im = Image.open(img_name + '.png').convert('L') im = im.resize((f_num_x, int(f_num_x * im.size[1] / im.size[0]))) level = im.getextrema()[-1] / (len(font_map) - 1) im = im.point(lambda i: int(i / level)) imn = Image.new('L', (im.size[0] * f_size, im.size[1] * f_size)) f = ImageFont.truetype('arial.ttf', f_size) d = ImageDraw.Draw(imn) for y in range(0, im.size[1]): for x in range(0, im.size[0]): pp = im.getpixel((x, y)) d.text((x * f_size, y * f_size), font_map[len(font_map) - pp - 1], fill=255, font=f) save(imn, img_name) if __name__ == '__main__': tt = time.time() main() print(time.time() - tt)
原文:https://blog.csdn.net/weixin_41738030/article/details/90347227