Python将图片转换为字符画的方法


Posted in Python onJune 16, 2020

最近在学习Python,看到网上用Python将图片转换成字符画便来学习一下

题目意思是,程序读入一个图片,以txt格式输出图片对应的字符画,如图所示:

Python将图片转换为字符画的方法

以下是Python代码:

# coding:utf-8 
 
# 为一张图片生成对应的字符集图片 
 
from PIL import Image 
import argparse 
 
# 命令行输入参数处理 
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 
 
ascii_char = list("$@B%8&WM#*oahkbdpqwmZO0QLCJUYXzcvunxrjft/\|()1{}[]?-_+~<>i!lI;:,\"^`'. ") 
 
 
# 将256灰度映射到70个字符上 
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)] 
 
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)

在输出文件中得到如下字符集:

Python将图片转换为字符画的方法

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python持久性管理pickle模块详细介绍
Feb 18 Python
Python验证码识别的方法
Jul 10 Python
Python实现随机生成有效手机号码及身份证功能示例
Jun 05 Python
教你用 Python 实现微信跳一跳(Mac+iOS版)
Jan 04 Python
Python pyinotify日志监控系统处理日志的方法
Mar 08 Python
Flask框架WTForm表单用法示例
Jul 20 Python
Python何时应该使用Lambda函数
Jul 02 Python
python 定时器每天就执行一次的实现代码
Aug 14 Python
基于TensorFlow中自定义梯度的2种方式
Feb 04 Python
python实现俄罗斯方块游戏(改进版)
Mar 13 Python
Windows下Pycharm远程连接虚拟机中Centos下的Python环境(图文教程详解)
Mar 19 Python
Python 捕获代码中所有异常的方法
Aug 03 Python
Python实现从log日志中提取ip的方法【正则提取】
Mar 31 #Python
Python+OpenCV实现车牌字符分割和识别
Mar 31 #Python
python Opencv将图片转为字符画
Feb 19 #Python
python实现批量按比例缩放图片效果
Mar 30 #Python
python放大图片和画方格实现算法
Mar 30 #Python
python实现数独游戏 java简单实现数独游戏
Mar 30 #Python
简单实现python数独游戏
Mar 30 #Python
You might like
php curl 伪造IP来源的实例代码
2012/11/01 PHP
浅析php与数据库代码开发规范
2013/08/08 PHP
jquery formValidator插件ajax验证 内容不做任何修改再离开提示错误的bug解决方法
2013/01/04 Javascript
JavaScript实现网页图片等比例缩放实现代码及调用方式
2013/02/25 Javascript
js判断undefined变量类型使用typeof
2013/06/03 Javascript
Jquery全选与反选点击执行一次的解决方案
2015/08/14 Javascript
JS实现支持多选的遍历下拉列表代码
2015/08/20 Javascript
jQuery解析json数据实例分析
2015/11/24 Javascript
JS代码实现table数据分页效果
2016/05/26 Javascript
JS原型链怎么理解
2016/06/27 Javascript
关于vue.js发布后路径引用的问题解决
2017/08/15 Javascript
Vue无限滑动周选择日期的组件的示例代码
2018/07/18 Javascript
如何为vue的项目添加单元测试
2018/12/19 Javascript
微信小程序实现简易table表格
2020/06/19 Javascript
Vue实现购物车的全选、单选、显示商品价格代码实例
2019/05/06 Javascript
react-native滑动吸顶效果的实现过程
2019/06/03 Javascript
[48:48]2014 DOTA2国际邀请赛中国区预选赛 SPD-GAMING VS Dream TIME
2014/05/21 DOTA
[35:34]Liquid vs Winstrike 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
Python设计模式之桥接模式原理与用法实例分析
2019/01/10 Python
对python_discover方法遍历所有执行的用例详解
2019/02/13 Python
python 实现矩阵填充0的例子
2019/11/29 Python
python Canny边缘检测算法的实现
2020/04/24 Python
python使用列表的最佳方案
2020/08/12 Python
python Xpath语法的使用
2020/11/26 Python
html5指南-3.如何实现html元素拖拽功能
2013/01/07 HTML / CSS
canvas探照灯效果的示例代码
2018/11/30 HTML / CSS
瑞贝卡·明可弗包包官网:Rebecca Minkoff
2016/07/21 全球购物
教师自我评价范例
2013/09/24 职场文书
家长给小学生的评语
2014/01/30 职场文书
驾驶员培训方案
2014/05/01 职场文书
关于感恩的演讲稿500字
2014/08/26 职场文书
公司委托书格式范文
2014/10/09 职场文书
祝酒词范文
2015/08/12 职场文书
手把手带你彻底卸载MySQL数据库
2022/06/14 MySQL
win10忘记pin密码登录不了怎么办?win10忘记pin密码登不进去的解决方法
2022/07/07 数码科技