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 urlopen 使用小示例
Sep 06 Python
Python多线程经典问题之乘客做公交车算法实例
Mar 22 Python
python绘制圆柱体的方法
Jul 02 Python
Flask-Mail用法实例分析
Jul 21 Python
深入理解python中sort()与sorted()的区别
Aug 29 Python
python爬取内容存入Excel实例
Feb 20 Python
Python中函数的基本定义与调用及内置函数详解
May 13 Python
python使用numpy实现直方图反向投影示例
Jan 17 Python
更新升级python和pip版本后不生效的问题解决
Apr 17 Python
python中查看.db文件中表格的名字及表格中的字段操作
Jul 07 Python
python 下载m3u8视频的示例代码
Nov 11 Python
浅谈Python 中的复数问题
May 19 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
新版mysql+apache+php Linux安装指南
2006/10/09 PHP
php5中类的学习
2008/03/28 PHP
PHP Memcached应用实现代码
2010/02/08 PHP
php自动获取目录下的模板的代码
2010/08/08 PHP
PHP积分兑换接口实例
2015/02/09 PHP
php+redis消息队列实现抢购功能
2018/02/08 PHP
js防止表单重复提交实现代码
2012/09/05 Javascript
jqgrid 表格数据导出实例
2013/11/21 Javascript
JavaScript中创建对象和继承示例解读
2014/02/12 Javascript
jQuery实现渐变下拉菜单的简单方法
2015/03/11 Javascript
jQuery实现列表的全选功能
2015/03/18 Javascript
Angular发布1.5正式版,专注于向Angular 2的过渡
2016/02/18 Javascript
jquery form表单获取内容以及绑定数据
2016/02/24 Javascript
JavaScript实现垂直向上无缝滚动特效代码
2016/11/23 Javascript
Bootstrap源码解读标签、徽章、缩略图和警示框(8)
2016/12/26 Javascript
Vue分页组件实例代码
2017/04/17 Javascript
微信小程序 图片宽高自适应详解
2017/05/11 Javascript
关于微信小程序bug记录与解决方法
2018/08/15 Javascript
详解关于element el-button使用$attrs的一个注意要点
2018/11/09 Javascript
Vue源码中要const _toStr = Object.prototype.toString的原因分析
2018/12/09 Javascript
浅谈vue 组件中的setInterval方法和window的不同
2020/07/30 Javascript
基于Vant UI框架实现时间段选择器
2020/12/24 Javascript
vue3.0封装轮播图组件的步骤
2021/03/04 Vue.js
[04:04]显微镜下的DOTA2第六期——电影级别的华丽团战
2014/06/20 DOTA
[04:48]DOTA2上海特锦赛小组赛第三日 TOP10精彩集锦
2016/02/28 DOTA
[04:05]TI9战队采访 - Natus Vincere
2019/08/22 DOTA
Python程序员鲜为人知但你应该知道的17个问题
2014/06/04 Python
python之文件的读写和文件目录以及文件夹的操作实现代码
2016/08/28 Python
基于python图书馆管理系统设计实例详解
2020/08/05 Python
微软香港官网及网上商店:Microsoft HK
2016/09/01 全球购物
Uber Eats台湾:寻找附近提供送餐服务的餐厅
2018/05/07 全球购物
药学专业毕业生求职信
2013/10/20 职场文书
电厂职工自我鉴定
2014/02/20 职场文书
《最佳路径》教学反思
2014/04/13 职场文书
客服专员岗位职责范本
2015/04/07 职场文书
python 使用Tensorflow训练BP神经网络实现鸢尾花分类
2021/05/12 Python