码迷,mamicode.com
首页 > 其他好文 > 详细

图片生成字符

时间:2020-02-08 15:23:11      阅读:295      评论:0      收藏:0      [点我收藏+]

标签:txt   reverse   article   shape   终端   with open   res   https   打开图片   

# -*- 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(\n)
    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

技术图片

图片生成字符

标签:txt   reverse   article   shape   终端   with open   res   https   打开图片   

原文地址:https://www.cnblogs.com/gisoracle/p/12283180.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!