python画字符画的实现原理
发表于:2024-11-20 作者:千家信息网编辑
千家信息网最后更新 2024年11月20日,这篇文章主要讲解了"python画字符画的实现原理",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"python画字符画的实现原理"吧!1.先看效果原图是
千家信息网最后更新 2024年11月20日python画字符画的实现原理
这篇文章主要讲解了"python画字符画的实现原理",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"python画字符画的实现原理"吧!
1.先看效果
原图是
字符画
2.实现原理
其实原理非常简单,首先,要准备一个字符集
char_set = '''$@B%8&WM#*oahkbdpqwmZO0QLCJUYXzcvunxrjft/\|()1{}[]?-_+~<>i!lI;:,\"^`'. '''
其次,要将图片转成灰度图,所谓灰度图就是黑白照片,这个过程中还要缩小图片,每张图片缩小的比例都不尽相同,要根据图片的实际情况来决定,这样就得到了一张缩小后的黑白照片
im = Image.open('qq.png')
im = im.resize((80, 50), Image.ANTIALIAS)
im = im.convert('L') # 转为黑白图, 每个像素都一个灰度值,从0到255, 0是黑色, 255是白色
im.save('t.jpeg') # 保存图片只是为了演示黑白照片
看起来有一些丑陋,这张黑白照片一共有80*50个像素,每个像素点都可以通过im.getpixel方法获得灰度值,这个值的范围是从0到255,0是黑色,255是白素,中间就是从黑到白的灰色。
接下来要做的事情就是把4000个灰度值转成字符
def get_char(gray):
if gray >= 240:
return ' '
else:
return char_set[int(gray/((256.0 + 1)/len(char_set)))]
灰度值大于240的,我都转成空字符串,这样看着舒服,其余的,按比例映射到字符集上。
强调一点,生成的txt文件不要打开查看,那样你看不到一个完整的字符画,在浏览器里打开字符画,这样才可以看到完整的,如果你把缩小的比例再放大一点,生成的字符画就会失去很多细节,一般来说,宽80就可以了,高度看情况调整。
3.完整代码
from PIL import Image
char_set = '''$@B%8&WM#*oahkbdpqwmZO0QLCJUYXzcvunxrjft/\|()1{}[]?-_+~<>i!lI;:,\"^`'. '''
im = Image.open('qq.png')
im = im.resize((80, 50), Image.ANTIALIAS)
im = im.convert('L') # 转为黑白图, 每个像素都一个灰度值,从0到255, 0是黑色, 255是白色
im.save('t.jpeg')
def get_char(gray):
if gray >= 240:
return ' '
else:
return char_set[int(gray/((256.0 + 1)/len(char_set)))]
text = ''
for i in range(im.height):
for j in range(im.width):
gray = im.getpixel((j, i)) # 返回值可能是一个int, 也可能是一个三元组
if isinstance(gray, tuple):
gray = int(0.2126 * gray[0] + 0.7152 * gray[1] + 0.0722 * gray[2])
text += get_char(gray)
text += '\n'
with open('pic.txt', 'w')as f:
f.write(text)
感谢各位的阅读,以上就是"python画字符画的实现原理"的内容了,经过本文的学习后,相信大家对python画字符画的实现原理这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是,小编将为大家推送更多相关知识点的文章,欢迎关注!
字符
灰度
原理
黑白
图片
像素
照片
就是
情况
比例
黑色
学习
内容
字符集
白色
生成
相同
舒服
丑陋
接下来
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
大连软件开发 公司有哪些
华北科技学院数据库综合实验
服务器 cpu 内存
成都医院时钟同步服务器
美国网络安全云南
小学生网络安全知识学生体会
群众网络安全宣传选择题
股票数据库帐号密码
大学生软件开发目标
山东省口碑好的存储服务器
北京慧信恒通网络技术有限公司
川大 计算机通信与网络技术
mdp数据库文件是什么
数据库回撤
网络安全杀毒软件应用实验
轻松钻网络技术有限公司怎么样
重庆智慧土地资产管理软件开发
软件开发维护费用
服务器没有用户管理
移动基站网络安全
河北开源软件开发定制企业
存储管理服务器性能要求
网络安全的层次
c 长时间打开数据库
公司网络服务器改造
plc数据采集并存入数据库培训
暗黑2 重制版连接不到服务器
数据库账号用户名和密码
nbu 数据库
网络安全团队标志