zoukankan      html  css  js  c++  java
  • 图片生成字符

    # -*- coding: utf-8 -*-
    
    from PIL import Image
    import numpy as np
    
    
    def print_photo(photo_file, width=120, k=1.0, reverse=False, outfile=None):
        """打印照片,默认120个字符宽度"""
    
        im = Image.open(photo_file).convert('L')  # 打开图片文件,转为灰度格式
        height = int(k * width * im.size[1] / im.size[0])  # 打印图像高度,k为矫正系数,用于矫正不同终端环境像素宽高比
        arr = np.array(im.resize((width, height)))  # 转为NumPy数组
        if reverse:  # 反色处理
            arr = 255 - arr
    
        chs = np.array([' ', '.', '-', '+', '=', '*', '#', '@'])  # 灰度-字符映射表
        arr = chs[(arr / 32).astype(np.uint8)]  # 灰度转为对应字符
    
        if outfile:
            with open(outfile, 'w') as fp:
                for row in arr.tolist():
                    fp.write(''.join(row))
                    fp.write('
    ')
        else:
            for i in range(arr.shape[0]):  # 逐像素打印
                for j in range(arr.shape[1]):
                    print(arr[i, j], end=' ')
                print()
    
    
    if __name__ == '__main__':
        print_photo('普天同庆.jpg', width=120, k=1.0, outfile='xufive.txt')

    来自:https://blog.csdn.net/xufive/article/details/103761569

  • 相关阅读:
    a==null和a.equals("null")的区别
    PHP_EOL换行符
    mysql 重启
    异或的用法
    so easy(并查集+unordered_map)
    牛客练习赛51 C 勾股定理
    Period II
    Simpsons’ Hidden Talents
    POJ-1961 Period
    poj-2406 Power Strings
  • 原文地址:https://www.cnblogs.com/gisoracle/p/12283180.html
Copyright © 2011-2022 走看看