• Python图片转字符


        前段时间学习pillow写的,可以通过改变font_map改变转换的深度和字符。思路是先转换黑白大小,读取黑白值取范围读font_map转变。

    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 = 'bb'
    f_size = 16
    f_num_x = 100
    def main() :
        im = Image.open(img_name+'.jpg').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)
    

      上实际效果:

  • 相关阅读:
    信号量
    队列 Queue JoinableQueue
    process 多进程写法 multiprocessing
    socketserver
    scokte tcp/ip
    线程池或进程池的回调函数
    gevent 真正的协程
    巨蟒python全栈开发flask12项目开始4
    巨蟒python全栈开发flask11项目开始3
    巨蟒python全栈开发flask10 项目开始2
  • 原文地址:https://www.cnblogs.com/lclblack/p/7095251.html
Copyright © 2020-2023  润新知