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中动态创建类实例的方法
Mar 24 Python
python3调用R的示例代码
Feb 23 Python
python中csv文件的若干读写方法小结
Jul 04 Python
pygame游戏之旅 添加键盘按键的方法
Nov 20 Python
Python图像滤波处理操作示例【基于ImageFilter类】
Jan 03 Python
利用python实现短信和电话提醒功能的例子
Aug 08 Python
基于Python的微信机器人开发 微信登录和获取好友列表实现解析
Aug 21 Python
python numpy存取文件的方式
Apr 01 Python
pytorch模型存储的2种实现方法
Feb 14 Python
通过python连接Linux命令行代码实例
Feb 18 Python
pycharm 使用tab跳出正在编辑的括号(){}{}等问题
Feb 26 Python
健身房被搭讪?用python写了个小米计时器助人为乐
Jun 08 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新手的一些建议(PHP学习经验总结)
2014/08/20 PHP
ThinkPHP3.2框架自定义配置和加载用法示例
2018/06/14 PHP
javascript 操作select下拉列表框的一点小经验
2010/03/20 Javascript
js 限制数字 js限制输入实现代码
2012/12/04 Javascript
js为鼠标添加右击事件防止默认的右击菜单弹出
2013/07/29 Javascript
3种不同方式的焦点图轮播特效分享
2013/10/30 Javascript
屏蔽script注入小例子
2013/11/12 Javascript
JavaScript程序开发之JS代码放置的位置
2016/01/15 Javascript
JavaScript手机振动API
2016/06/11 Javascript
浅谈js函数的多种定义方法与区别
2016/11/29 Javascript
jQuery向webApi提交post json数据
2017/01/16 Javascript
JavaScript校验Number(4,1)格式的数字实例代码
2017/03/13 Javascript
js实现彩色条纹滚动条效果
2017/03/15 Javascript
微信小程序动态增加按钮组件
2018/09/14 Javascript
微信小程序websocket聊天室的实现示例代码
2019/02/12 Javascript
JS实现超级好看的鼠标小尾巴特效
2020/12/01 Javascript
详解微信小程序(Taro)手动埋点和自动埋点的实现
2021/03/02 Javascript
Python的Django框架中forms表单类的使用方法详解
2016/06/21 Python
Python实现的单向循环链表功能示例
2017/11/10 Python
python 实现网易邮箱邮件阅读和删除的辅助小脚本
2021/03/01 Python
微信小程序实现可实时改变转速的css3旋转动画实例代码
2018/09/11 HTML / CSS
HTML5 MiranaVideo播放器 (代码开源)
2010/06/11 HTML / CSS
localStorage的过期时间设置的方法详解
2018/11/26 HTML / CSS
固特异美国在线轮胎店:Goodyear Tire
2019/02/23 全球购物
Static Nested Class 和 Inner Class的不同
2013/11/28 面试题
护理学中专毕业生求职信
2013/11/11 职场文书
数据管理员的自我评价分享
2013/11/15 职场文书
经济管理专业毕业生自荐信范文
2014/01/02 职场文书
《散步》教学反思
2014/03/02 职场文书
3.12植树节活动总结2014
2014/03/13 职场文书
文明美德伴我成长演讲稿
2014/05/12 职场文书
图书室标语
2014/06/21 职场文书
个人典型事迹材料
2014/12/30 职场文书
幼儿教师辞职信范文
2015/03/02 职场文书
消费者投诉书范文
2015/07/02 职场文书
2016公务员年度考核评语
2015/12/01 职场文书