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

本文介绍了一种使用Python将图片转换为字符画的方法,包括调整图片大小、转换字符和保存文本等步骤。通过定义字符集和转换函数,将图片的RGB值映射到特定字符上,最终形成字符画。
摘要由CSDN通过智能技术生成

注意:这里的 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 = int(nwh[0] / max(w,h) * w) #max函数获取较大值

hh = int(nwh[0] / max(w,h) * h)

image = image.resize((ww,hh),Image.ANTIALIAS)

#改变图片大小

#第一个参数放入一个元组,指定宽高

#第二个参数 Image.ANTIALIAS 表示获取高质量图片

else:

#项数不为1,缩放为指定宽高的矩形

image = image.resize((nwh[0],nwh[1]),Image.ANTIALIAS)

2.5 转换字符

指定转换的字符集

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

#list函数将字符串转换为列表

定义转换字符的函数

def getasc(r,g,b,t=100): #t为透明度

if t == 0:

return(’ ') #如果是透明的,则直接返回空值

else:

asc = ‘’

gray = int(0.2126r+0.7152g+0.0722*b) #转灰度值

asc = asciis[int(len(asciis)/256*(gray))] #获取字符

return(asc)

开始转换字符

for i in range(

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值