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实现类似ftp传输文件的网络程序示例
Apr 08 Python
Python 逐行分割大txt文件的方法
Oct 10 Python
Python数据分析之双色球中蓝红球分析统计示例
Feb 03 Python
Python 判断文件或目录是否存在的实例代码
Jul 19 Python
编写多线程Python服务器 最适合基础
Sep 14 Python
Python面向对象程序设计构造函数和析构函数用法分析
Apr 12 Python
python读写配置文件操作示例
Jul 03 Python
Python实现元素等待代码实例
Nov 11 Python
Python matplotlib实时画图案例
Apr 23 Python
pycharm使用技巧之自动调整代码格式总结
Nov 04 Python
详解Python之Scrapy爬虫教程NBA球员数据存放到Mysql数据库
Jan 24 Python
Pandas数据分析的一些常用小技巧
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
社区(php&amp;&amp;mysql)三
2006/10/09 PHP
深入解读php中关于抽象(abstract)类和抽象方法的问题分析
2014/01/03 PHP
php计算当前程序执行时间示例
2014/04/24 PHP
MacOS 安装 PHP的图片裁剪扩展Tclip
2015/03/25 PHP
详解PHP中的mb_detect_encoding函数使用方法
2015/08/18 PHP
escape、encodeURI 和 encodeURIComponent 的区别
2009/03/02 Javascript
JQuery拖拽元素改变大小尺寸实现代码
2012/12/10 Javascript
javascript实现网页背景烟花效果的方法
2015/08/06 Javascript
weUI应用之JS常用信息提示弹层的封装
2016/11/21 Javascript
Bootstrap响应式导航由768px变成992px的实现代码
2017/06/15 Javascript
jquery animate动画持续运动的实例
2017/11/29 jQuery
详解ES6 系列之异步处理实战
2018/10/26 Javascript
electron制作仿制qq聊天界面的示例代码
2018/11/26 Javascript
javascript for循环性能测试示例
2019/08/07 Javascript
vue实现移动端拖动排序
2020/08/21 Javascript
[01:02:53]DOTA2上海特级锦标赛主赛事日 - 5 总决赛Liquid VS Secret第二局
2016/03/06 DOTA
[50:45]2018DOTA2亚洲邀请赛 4.6 淘汰赛 VP vs TNC 第一场
2018/04/10 DOTA
用yum安装MySQLdb模块的步骤方法
2016/12/15 Python
numpy中的delete删除数组整行和整列的实例
2018/05/09 Python
pandas进行数据的交集与并集方式的数据合并方法
2018/06/27 Python
Python使用itchat 功能分析微信好友性别和位置
2019/08/05 Python
python 使用多线程创建一个Buffer缓存器的实现思路
2020/07/02 Python
pandas.DataFrame.drop_duplicates 用法介绍
2020/07/06 Python
python3爬虫中多线程的优势总结
2020/11/24 Python
基于css3的属性transition制作菜单导航效果
2015/09/01 HTML / CSS
phpquery中文手册
2021/03/18 PHP
澳大利亚美容产品及化妆品在线:Activeskin
2020/06/03 全球购物
Java 中访问数据库的步骤?Statement 和PreparedStatement 之间的区别?
2012/06/05 面试题
Java程序开发中如何应用线程
2016/03/03 面试题
党员创先争优活动总结
2014/05/04 职场文书
党员四风剖析材料
2014/08/27 职场文书
入党积极分子批评与自我批评思想汇报
2014/09/14 职场文书
县级领导干部开展党的群众路线教育实践活动工作汇报
2014/10/25 职场文书
民用住房租房协议书
2014/10/29 职场文书
七年级作文之环保作文
2019/10/17 职场文书
《追风筝的人》:人心中的成见是座大山,但请不忘初心
2019/11/15 职场文书