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实现搜索指定目录下文件及文件内搜索指定关键词的方法
Jun 28 Python
Python减少循环层次和缩进的技巧分析
Mar 15 Python
对Python Pexpect 模块的使用说明详解
Feb 14 Python
Python实现语音识别和语音合成功能
Sep 20 Python
python3多线程知识点总结
Sep 26 Python
导入tensorflow时报错:cannot import name 'abs'的解决
Oct 10 Python
Python Django中间件,中间件函数,全局异常处理操作示例
Nov 08 Python
解决Python命令行下退格,删除,方向键乱码(亲测有效)
Jan 16 Python
Pytorch maxpool的ceil_mode用法
Feb 18 Python
python+opencv实现移动侦测(帧差法)
Mar 20 Python
Python爬虫中urllib3与urllib的区别是什么
Jul 21 Python
Python按顺序遍历并读取文件夹中文件
Apr 29 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初学入门
2006/11/19 PHP
php写的带缓存数据功能的mysqli类
2012/09/06 PHP
PHP准确取得服务器IP地址的方法
2015/06/02 PHP
在PHP语言中使用JSON和将json还原成数组的方法
2016/07/19 PHP
php+webSoket实现聊天室示例代码(附源码)
2017/02/17 PHP
php获取目录下所有文件及目录(多种方法)(推荐)
2019/05/14 PHP
JavaScript中的一些定位属性[图解]
2010/07/14 Javascript
JS打印gridview实现原理及代码
2013/02/05 Javascript
网页下载文件期间如何防止用户对网页进行其他操作
2014/06/27 Javascript
node.js中的events.emitter.removeListener方法使用说明
2014/12/10 Javascript
JS实现具备延时功能的滑动门菜单效果
2015/09/17 Javascript
jQuery树形插件jquery.simpleTree.js用法分析
2016/09/05 Javascript
javascript的document中的动态添加标签实现方法
2016/10/24 Javascript
Node.js与Sails redis组件的使用教程
2017/02/14 Javascript
JS+HTML5 canvas绘制验证码示例
2018/12/05 Javascript
layui实现数据表格隐藏列的示例
2019/10/25 Javascript
在js文件中引入(调用)另一个js文件的三种方法
2020/09/11 Javascript
[02:52]DOTA2新手基础教程 米波
2014/01/21 DOTA
[03:00]2014DOTA2国际邀请赛 Titan淘汰潸然泪下Ohaiyo专访
2014/07/15 DOTA
[01:04:14]VP vs TNC 2018国际邀请赛小组赛BO2 第二场 8.17
2018/08/20 DOTA
Python遍历指定文件及文件夹的方法
2015/05/09 Python
python高效过滤出文件夹下指定文件名结尾的文件实例
2018/10/21 Python
python实现几种归一化方法(Normalization Method)
2019/07/31 Python
基于python实现FTP文件上传与下载操作(ftp&amp;sftp协议)
2020/04/01 Python
python各种excel写入方式的速度对比
2020/11/10 Python
python实现计算器简易版
2020/12/17 Python
eBay奥地利站:eBay.at
2019/07/24 全球购物
您的时尚,您的生活方式:DTLR Villa
2019/12/25 全球购物
管理科学大学生求职信
2013/11/13 职场文书
积极分子思想汇报
2014/01/04 职场文书
物业管理计划书
2014/01/10 职场文书
新三好学生主要事迹
2014/01/23 职场文书
创先争优标语
2014/06/27 职场文书
工商局领导班子存在的问题整改措施思想汇报
2014/10/05 职场文书
如何利用map实现Nginx允许多个域名跨域
2021/03/31 Servers
一文搞懂Python Sklearn库使用
2021/08/23 Python