• Python图片转字符画


    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

  • 相关阅读:
    547. Friend Circles
    399. Evaluate Division
    684. Redundant Connection
    327. Count of Range Sum
    LeetCode 130 被围绕的区域
    LeetCode 696 计数二进制子串
    LeetCode 116 填充每个节点的下一个右侧节点
    LeetCode 101 对称二叉树
    LeetCode 111 二叉树最小深度
    LeetCode 59 螺旋矩阵II
  • 原文地址:https://www.cnblogs.com/qbdj/p/10956630.html
Copyright © 2020-2023  润新知