zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    Goolge-Guava Concurrent中的Service
    Golang操作数据库
    HttpContext
    office 问题集
    C# 日志使用
    字符编解码的故事 字符集 GBK GB2312 GB18030 Unicode 的由来和区别
    TCP UDP 协议的选择
    WebService 学习总结
    WebService 学习过程
    Archery:开源漏洞评估和管理工具
  • 原文地址:https://www.cnblogs.com/qbdj/p/10956630.html
Copyright © 2011-2022 走看看