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 ip正则式
May 07 Python
深入解析Python中的lambda表达式的用法
Aug 28 Python
pandas.dataframe中根据条件获取元素所在的位置方法(索引)
Jun 07 Python
在python中将list分段并保存为array类型的方法
Jul 15 Python
基于Django静态资源部署404的解决方法
Jul 28 Python
Django中使用session保持用户登陆连接的例子
Aug 06 Python
django实现支付宝支付实例讲解
Oct 17 Python
python3 pillow模块实现简单验证码
Oct 31 Python
记一次pyinstaller打包pygame项目为exe的过程(带图片)
Mar 02 Python
Python应用自动化部署工具Fabric原理及使用解析
Nov 30 Python
用python读取xlsx文件
Dec 17 Python
Python调用SMTP服务自动发送Email的实现步骤
Feb 07 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
应用开发中涉及到的css和php笔记分享
2011/08/02 PHP
使用php计算排列组合的方法
2013/11/13 PHP
PHP递归复制、移动目录的自定义函数分享
2014/11/18 PHP
教你在header中隐藏php的版本信息
2016/08/10 PHP
MooTools 1.2介绍
2009/09/14 Javascript
JS 的应用开发初探(mootools)
2009/12/19 Javascript
Javascript表达式中连续的 &amp;&amp; 和 || 之赋值区别
2010/10/17 Javascript
Ajax局部更新导致JS事件重复触发问题的解决方法
2014/10/14 Javascript
使用impress.js制作幻灯片
2015/09/09 Javascript
jQuery实现有动画淡出效果的二级折叠菜单代码
2015/10/17 Javascript
JavaScript中点击事件的写法
2016/06/28 Javascript
AngularJs bootstrap详解及示例代码
2016/09/01 Javascript
vue webuploader 文件上传组件开发
2017/09/23 Javascript
浅谈Angular2 模块懒加载的方法
2017/10/04 Javascript
详解javascript appendChild()的完整功能
2018/08/18 Javascript
详解js模板引擎art template数组渲染的方法
2018/10/09 Javascript
基于JQuery和DWR实现异步数据传递
2020/10/16 jQuery
python通过urllib2爬网页上种子下载示例
2014/02/24 Python
python中的sort方法使用详解
2014/07/25 Python
Python中列表、字典、元组、集合数据结构整理
2014/11/20 Python
Django admin美化插件suit使用示例
2017/12/12 Python
使用Python 自动生成 Word 文档的教程
2020/02/13 Python
浅谈python print(xx, flush = True) 全网最清晰的解释
2020/02/21 Python
python 按钮点击关闭窗口的实现
2020/03/04 Python
Kmeans均值聚类算法原理以及Python如何实现
2020/09/26 Python
利用python实现后端写网页(flask框架)
2021/02/28 Python
使用CSS实现阅读进度条
2017/02/27 HTML / CSS
驴妈妈旅游网:中国新型的B2C旅游电子商务网站
2016/08/16 全球购物
美国糖果店:Sugarfina
2019/02/21 全球购物
C++如何引用一个已经定义过的全局变量
2014/08/25 面试题
高级电工工作职责
2013/11/21 职场文书
材料物理专业个人求职信
2013/12/15 职场文书
2015年仓管员工作总结
2015/04/21 职场文书
涨工资申请书应该怎么写?
2019/07/08 职场文书
Python3中最常用的5种线程锁实例总结
2021/07/07 Python
JS数组去重详情
2021/11/07 Javascript