【实例】Python 简单的 图片转字符画

本文介绍如何使用Python将图片转换成字符画,通过解释原理、导入库、获取图片路径和选项、调整图片大小、转换字符以及保存文本,详细展示了整个过程。文章最后提供了完整代码,并建议可以结合命令行参数功能进行拓展。
摘要由CSDN通过智能技术生成

1. 原理

利用 PIL 库来获取图片并修改大小,
利用灰度值转换公式把每一个像素的 RGB 值转为灰度值

gray = int(0.2126*r+0.7152*g+0.0722*b)

再从字符集里获取对应的字符

asciis = list('M%$@#&WNBRwm8S5A4E3KXFPH69nsxeazgpqbdoctfhkyvuGZYVTUCI2QOD0L7Jjl1ri!^{}[]()/|;:*<>_~-,. ')

最后将字符连接起来并保存就完成了

2. 开始制作

2.1 导入所需的库

在这个工程中,我们需要的第三方库是 PIL
但我们不用 pip install PIL 来安装它,而是使用 pip install pillow

pip install pillow

导入库
在导入 PIL 库时,不能用 import pillow,应使用 import PIL

from PIL import Image as Image

2.2 获取图片路径和选项

inputfile = input('inputfile:')
outputfile = input('outputfile:')
distance = {
   'y':' ','':' ','n':''}
distance = distance[input('distance?(Y/n):')]
re = input("resize?:")

字母占用的位置是矩形的,因此生成出来的字符画会被“挤压”。我们可以在字母与字母之间添加空格来防止这种情况的发生。
如果图片太大了,会导致耗费时间过长、乱码等问题。我们应该对图片进行必要的缩放。在询问“resize?”时,可以设置以下几种回答:

回答方式 作用
“”,啥也不输入 不缩放
“100”,边长 输入单个数字时,会按比例缩放为较长边为此长度的矩形
“100,200”,宽和高 缩放为指定宽高的矩形

2.3 图片获取

使用 PILopen 函数打开图片

image = Image.open(inputfile)

注意:这里的 open 函数不要和 python 内置函数 open 混淆

2.4 调整图片大小

获取图片大小

w, h = image.size

获取变量 re 中存储的大小信息,并用函数 split 分割

nwh = re.split(',')
for i in range(len(nwh)):
    nwh[i] = int(nwh[i])

调整图片大小

if len(nwh) == 1:
    #如果项数为1,表示用户只输入了一个数字。即按比例缩放为较长边为此长度的矩形
    ww = 
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值