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 10 Python
python实现微信接口(itchat)详细介绍
Oct 23 Python
浅谈Python中range和xrange的区别
Dec 20 Python
python Pandas 读取txt表格的实例
Apr 29 Python
pandas的唯一值、值计数以及成员资格的示例
Jul 25 Python
Python实现点阵字体读取与转换的方法
Jan 29 Python
Django CBV类的用法详解
Jul 26 Python
Django1.11自带分页器paginator的使用方法
Oct 31 Python
Python可变参数会自动填充前面的默认同名参数实例
Nov 18 Python
django中嵌套的try-except实例
May 21 Python
python3爬虫中多线程进行解锁操作实例
Nov 25 Python
Python 2.6.6升级到Python2.7.15的详细步骤
Dec 14 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 中include()与require()的对比
2006/10/09 PHP
PHP读MYSQL中文乱码的解决方法
2006/12/17 PHP
IP138 IP地址查询小偷实现代码
2010/02/15 PHP
有关DOM元素与事件的3个谜题
2010/11/11 Javascript
javascript真的不难-回顾一下基础知识
2013/01/15 Javascript
jQuery写的日历(包括日历的样式及功能)
2013/04/23 Javascript
JavaScript匿名函数用法分析
2015/02/13 Javascript
jQuery选择器源码解读(四):tokenize方法的Expr.preFilter
2015/03/31 Javascript
关于在Servelet中如何获取当前时间的操作方法
2016/06/28 Javascript
再谈javascript常见错误及解决方法
2016/09/16 Javascript
javascript实现用户点击数量统计
2016/12/25 Javascript
vue.js实现标签页切换效果
2018/06/07 Javascript
socket io与vue-cli的结合使用的示例代码
2018/11/01 Javascript
Nuxt项目支持eslint+pritter+typescript的实现
2019/05/20 Javascript
详解基于Vue的支持数据双向绑定的select组件
2019/09/02 Javascript
webpack 如何同时输出压缩和未压缩的文件的实现步骤
2020/06/05 Javascript
vue实现简易计算器功能
2021/01/20 Vue.js
python计算方程式根的方法
2015/05/07 Python
Python实现简单的代理服务器
2015/07/25 Python
单利模式及python实现方式详解
2018/03/20 Python
python 获取当天每个准点时间戳的实例
2018/05/22 Python
使用Python制作简单的小程序IP查看器功能
2019/04/16 Python
django创建超级用户时指定添加其它字段方式
2020/05/14 Python
CSS3教程(3):border-color网页边框色彩
2009/04/02 HTML / CSS
Forever 21美国官网:美国标志性快时尚品牌
2017/02/20 全球购物
Reebonz中国官网:新加坡奢侈品购物网站
2017/03/17 全球购物
儿媳婚宴答谢词
2014/01/14 职场文书
信息专业大学生自我评价分享
2014/01/17 职场文书
英语专业职业生涯规划范文
2014/03/05 职场文书
学生请假条
2014/04/11 职场文书
《美丽的南沙群岛》教学反思
2014/04/27 职场文书
市级三好学生事迹材料
2014/08/27 职场文书
开学典礼致辞
2015/07/29 职场文书
教师学期述职自我鉴定
2019/08/16 职场文书
详解python中[-1]、[:-1]、[::-1]、[n::-1]使用方法
2021/04/25 Python
pandas DataFrame.shift()函数的具体使用
2021/05/24 Python