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多线程操作实例
Nov 21 Python
python3实现基于用户的协同过滤
May 31 Python
python实现下载pop3邮件保存到本地
Jun 19 Python
python使用xlrd和xlwt读写Excel文件的实例代码
Sep 05 Python
Django框架模板注入操作示例【变量传递到模板】
Dec 19 Python
运用Python的webbrowser实现定时打开特定网页
Feb 21 Python
python实现异常信息堆栈输出到日志文件
Dec 26 Python
python tkinter之 复选、文本、下拉的实现
Mar 04 Python
后端开发使用pycharm的技巧(推荐)
Mar 27 Python
浅谈tensorflow中dataset.shuffle和dataset.batch dataset.repeat注意点
Jun 08 Python
python 两种方法修改文件的创建时间、修改时间、访问时间
Sep 26 Python
python关于集合的知识案例详解
May 30 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防止post重复提交数据的简单例子
2014/06/07 PHP
RSA实现JS前端加密与PHP后端解密功能示例
2019/08/05 PHP
深入理解JavaScript系列(2) 揭秘命名函数表达式
2012/01/15 Javascript
JQuery选择器特辑 详细小结
2012/05/14 Javascript
js中eval()函数和trim()去掉字符串左右空格应用
2013/02/02 Javascript
浅析ajax请求json数据并用js解析(示例分析)
2013/07/13 Javascript
javascript获取函数名称、函数参数、对象属性名称的代码实例
2014/04/12 Javascript
JS图片自动轮换效果实现思路附截图
2014/04/30 Javascript
Js实现手机发送验证码时按钮延迟操作
2014/06/20 Javascript
JavaScript避免内存泄露及内存管理技巧
2014/09/05 Javascript
Javascript的闭包详解
2014/12/26 Javascript
js选项卡的实现方法
2015/02/09 Javascript
Node.js实现文件上传
2016/07/05 Javascript
AngularJS基础 ng-mouseover 指令简单示例
2016/08/02 Javascript
js图片轮播手动切换特效
2017/01/12 Javascript
d3.js入门教程之数据绑定详解
2017/04/28 Javascript
javaScript中封装的各种写法示例(推荐)
2017/07/03 Javascript
vue-cli脚手架引入弹出层layer插件的几种方法
2019/06/24 Javascript
layui select 禁止点击的实现方法
2019/09/05 Javascript
[00:58]2016年国际邀请赛勇士令状宣传片
2016/06/01 DOTA
python迭代器的使用方法实例
2013/11/21 Python
在Python的while循环中使用else以及循环嵌套的用法
2015/10/14 Python
python编程开发之日期操作实例分析
2015/11/13 Python
浅谈Python中的可变对象和不可变对象
2017/07/07 Python
python定向爬虫校园论坛帖子信息
2018/07/23 Python
python matplotlib画图库学习绘制常用的图
2019/03/19 Python
100行Python代码实现每天不同时间段定时给女友发消息
2019/09/27 Python
pandas 强制类型转换 df.astype实例
2020/04/09 Python
python 如何停止一个死循环的线程
2020/11/24 Python
洲际酒店集团英国官网:IHG英国
2019/07/10 全球购物
Belstaff英国官方在线商店:Belstaff.co.uk
2021/02/09 全球购物
清明节扫墓活动方案
2014/03/02 职场文书
2014年导购员工作总结
2014/11/18 职场文书
中学教师师德师风承诺书
2015/04/28 职场文书
安全生产警示教育活动总结
2015/05/09 职场文书
圣诞晚会主持词
2015/07/01 职场文书