Python游戏 —— 图片转字符画

步骤1:PIL 是一个 Python 图像处理库,使用下面的命令来安装 pillow(PIL)库

$ sudo pip3 install --upgrade pip
$ sudo pip3 install pillow

使用灰度值公式将像素的 RGB 值映射到灰度值

gray = 0.2126 * r + 0.7152 * g + 0.0722 * b

步骤2:在/home/shiyanlou/ 目录下创建 ascii.py 代码文件进行编辑

$ cd /home/shiyanlou/
$ touch ascii.py

步骤3:使用 vim 或者 gedit 打开代码文件

$ cd /home/shiyanlou
$ gedit ascii.py

文件打开后依次输入以下的代码内容

步骤4:首先导入必要的库,argparse 库是用来管理命令行参数输入

from PIL import Image
import argparse

步骤5:使用 argparse 处理命令行参数,目标是获取输入的图片路径、输出字符画的宽和高以及输出文件的路径

# 首先,构建命令行输入参数处理 ArgumentParser 实例
parser = argparse.ArgumentParser()

# 定义输入文件、输出文件、输出字符画的宽和高
parser.add_argument('file')     #输入文件
parser.add_argument('-o', '--output')   #输出文件
parser.add_argument('--width', type = int, default = 80) #输出字符画宽
parser.add_argument('--height', type = int, default = 80) #输出字符画高

# 解析并获取参数
args = parser.parse_args()

# 输入的图片文件路径
IMG = args.file

# 输出字符画的宽度
WIDTH = args.width

# 输出字符画的高度
HEIGHT = args.height

# 输出字符画的路径
OUTPUT = args.output

步骤6:将 RGB 值转为灰度值,然后使用灰度值映射到字符列表中的某个字符

ascii_char = list("$@B%8&WM#*oahkbdpqwmZO0QLCJUYXzcvunxrjft/\|()1{}[]?-_+~<>i!lI;:,\"^`'. ")

步骤7:下面是 RGB 值转字符的函数,注意 alpha 值为 0 的时候表示图片中该位置为空白

def get_char(r,g,b,alpha = 256):

    # 判断 alpha 值
    if alpha == 0:
        return ' '

    # 获取字符集的长度,这里为 70
    length = len(ascii_char)
    
    # 将 RGB 值转为灰度值 gray,灰度值范围为 0-255
    gray = int(0.2126 * r + 0.7152 * g + 0.0722 * b)

    # 灰度值范围为 0-255,而字符集只有 70
    # 需要进行如下处理才能将灰度值映射到指定的字符上
    unit = (256.0 + 1)/length
    
    # 返回灰度值对应的字符
    return ascii_char[int(gray/unit)]
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

2021 Nqq

你的鼓励是我学习的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值