Python写个简单的字符画转换程序
来源:互联网 发布:redis 数据库设计 编辑:程序博客网 时间:2024/04/30 11:41
大家一定玩过这样的游戏,特别是写邮件聊QQ的时候,如 ^_^ 来表示笑脸。如果复杂一点,有办法吗?
如:这样的一张图:
`
@@@* -@@ @* @@ @@ -@@@@@@@@@@@* @@@- .@ @@*@. @@@@@@ -@@@@@*-*@@@@@ @- -@ @@@- *@@ @@@ @- @@@@ .@* @@@ @@@@@@@@@@@@@@@@@@ @@ .@@ @@ -@@ @- .@@@@@*- -*@@@ -@ -@@@@@@ @@ @@ -@. @@ *@ .@@ @@ @@ -**- *@ @@ @* @* *@* @@ @* @@ .@* @@@@@ *@@ @@@@ @@ @. @@. @@ @ * *@@. -@ @@- @@- .-@@@* *@@@@ -*@@@@@@@@@@@@@@@@@@@@@@@@@@@ .@@- @* . @@ -@@@@*. -*@@@@@@@* @@ .@@@@@ .*@@@@- @* .@@* .@@@@@ .@@* -*@@@@@@@@. @@@- @.@@@- -@@@@@. @@ .@@ @ @@ .@@@ *@. @@ -@ @@ @@@ @@ @@ @. .@ @@. *@ @@@@@@@ *@ -@ @@ @@ @. @@@@@. .@@ @@. @@ @- *@@ .@@* @@ @@* @@@- @@ @@. @* @@@@@@ -@@@ @@ .@@ @@ @@ @@ -@ @@ @* @. @* @@ @@ @@ @@ @ @@@@*@@@@ *@ @. @@ @@ @@. *@- @ .@ @@*. @. .@@ @@. @@@ @@* -@ -@ .*@@@@@@@ @- .@@. -@@* .@@@@@@. @@ @@ @@ @* -@@@@@* @ @@ -@ @@ @@ @@ *@ @@ @@ @@@@@@@@ .@ .@ @@ -@ .@* @@ -@. @@ @ *@ @@- .@@* @@ @* @. -@@@@@@* @@@ @@ .@ .@ *@@@ @@@ @@ @@ @@@@. -@@@@ -@-*@@- *@@@@@@- .-@@@@@@@@@@@ @@. -@@@@@@.@@@@@@@@@@@@@@@@@@@@@@@@@@*. @@ @* @- -@ @- .@. -@ *@ *@ .@ @@ -@ @ @* @@ @@ -@@@@*-.-*@@@- @@ @@ @@ -@@ .@. @@ .-@@@@@@@@@@* @@ @@ @- -@. -@@@@@*. @@@ @@ @* @@ *@ .@@* -@* *@ @@ @@ -@@@@@. @@- *@ @@..@@@* @@* @@ .-*-
`
使用python,可以在100行代码里解决问题:
#!/usr/bin/python# -*- coding: UTF-8 -*-# 读入一张画,输出一个字符组成的字符画# 需要用到的类库有:# 1. pillow。可以使用pip install pillow# http://pillow.readthedocs.io/en/latest/handbook/tutorial.html# 灰度值 = 0.2126 * r + 0.7152 * g + 0.0722 * bfrom PIL import Imageimport argparse#命令行输入参数处理parser = argparse.ArgumentParser()#输入文件parser.add_argument('file')#输出文件parser.add_argument('-o', '--output')#输出字符画宽parser.add_argument('--width', type=int, default=160)#输出字符画高parser.add_argument('--height', type=int, default=60)#获取参数args = parser.parse_args()IMG = args.fileWIDTH = args.widthHEIGHT = args.heightOUTPUT = args.outputascii_char = list("@*-. ")# 将256灰度映射到ascii_char个字符上def get_char(r, b, g, alpha=256): if alpha == 0: return ' ' length = len(ascii_char) gray = int(0.2126 * r + 0.7152 * g + 0.0722 * b) unit = (256.0 + 1)/length return ascii_char[int(gray/unit)]# 在cmd 中直接运行.py文件,则__name__的值是'__main__';# 而在import 一个.py文件后,__name__的值就不是'__main__'了;# 从而用if __name__ == '__main__'来判断是否是在直接运行该.py文件if __name__ == '__main__': im = Image.open(IMG) im = im.resize((WIDTH, HEIGHT), Image.NEAREST) txt = "" for i in range(HEIGHT): for j in range(WIDTH): txt += get_char(*im.getpixel((j, i))) txt += '\n' print txt #字符画输出到文件 if OUTPUT: with open(OUTPUT, 'w') as f: f.write(txt) else: with open("output.txt", 'w') as f: f.write(txt)
0 0
- Python写个简单的字符画转换程序
- 写个简单的生成奇阶幻方程序!
- 第一个工程2,-写个简单的测试程序
- 用Python把图片转换为ASCII字符的程序
- Java: 写个简单的Client,Server聊天程序
- 用QT写个简单的GUI程序
- WTL(2) - 写个简单的窗口程序玩玩
- 用shell写个简单的log监控程序
- 用 PIL 写了个简单的缩略图生成程序
- 用 PIL 写了个简单的缩略图生成程序
- 今天帮公司写个相对简单的单片机程序
- 用 PIL 写了个简单的缩略图生成程序
- 写个快速排序的简单程序c++
- 【实践】nodeJS写个简单的爬虫程序
- 用c为python写个简单的模块
- 用c为python写个简单的模块
- 用Python写个简单的推荐系统(一)
- Python 写的第一个算法程序,果然很强大
- c++ basic_strings
- 自定义Notification 学习笔记
- 扩展欧几里德原理
- batch批量获取数据和批量插入batchInsert工作总结
- Xcode升级常见问题
- Python写个简单的字符画转换程序
- 容斥原理二进制实现
- 文件服务器Samba
- IntelliJ IDEA 快捷键
- oracle安装,远程连接,快速导入导出
- 学习笔记之自定义view
- hdoj2034
- 【分享】Angel Beats! 同人游戏合集[同人,试玩,ONS安卓体验版.h同人]
- 对UTF-8的一些记录