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代理抓取并验证使用多线程实现
May 03 Python
python将ip地址转换成整数的方法
Mar 17 Python
python获取局域网占带宽最大3个ip的方法
Jul 09 Python
python爬虫实战之爬取京东商城实例教程
Apr 24 Python
Python实现全排列的打印
Aug 18 Python
详解Selenium+PhantomJS+python简单实现爬虫的功能
Jul 14 Python
python PyQt5/Pyside2 按钮右击菜单实例代码
Aug 17 Python
深入了解如何基于Python读写Kafka
Dec 31 Python
Pyinstaller加密打包应用的示例代码
Jun 11 Python
如何基于Python爬虫爬取美团酒店信息
Nov 03 Python
python实现MySQL指定表增量同步数据到clickhouse的脚本
Feb 26 Python
PYTHON InceptionV3模型的复现详解
May 06 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
饭制《星际争霸》Mod:优化游戏机制 增加新单位
2017/07/02 星际争霸
php中的curl使用入门教程和常见用法实例
2014/04/10 PHP
PHP使用gmdate实现将一个UNIX 时间格式化成GMT文本的方法
2015/03/19 PHP
ThinkPHP设置禁止百度等搜索引擎转码(简单实用)
2016/02/15 PHP
PHPExcel简单读取excel文件示例
2016/05/26 PHP
javascript KeyDown、KeyPress和KeyUp事件的区别与联系
2009/12/03 Javascript
JQuery中使用Ajax赋值给全局变量异常的解决方法
2014/01/10 Javascript
JavaScript匿名函数与委托使用示例
2014/07/22 Javascript
angular.element方法汇总
2015/01/07 Javascript
nw.js实现类似微信的聊天软件
2015/03/16 Javascript
JavaScript实现重置表单(reset)的方法
2015/04/02 Javascript
JavaScript判断前缀、后缀是否是空格的方法
2015/04/15 Javascript
关注jquery技巧提高jquery技能(前端开发必学)
2015/11/02 Javascript
JavaScript Array对象详解
2016/03/01 Javascript
jQuery之简单的表单验证实例
2016/07/07 Javascript
微信小程序 购物车简单实例
2016/10/24 Javascript
vue 利用路由守卫判断是否登录的方法
2018/09/29 Javascript
Vue+Node实现的商城用户管理功能示例
2019/12/23 Javascript
Openlayers实现距离面积测量
2020/09/28 Javascript
UEditor 自定义图片视频尺寸校验功能的实现代码
2020/10/20 Javascript
[07:26]2015国际邀请赛第二日TOP10集锦
2015/08/06 DOTA
使用graphics.py实现2048小游戏
2015/03/10 Python
初步探究Python程序的执行原理
2015/04/11 Python
python通过微信发送邮件实现电脑关机
2018/06/20 Python
python使用matplotlib模块绘制多条折线图、散点图
2020/04/26 Python
Python3批量创建Crowd用户并分配组
2020/05/20 Python
德国高性价比网上药店:medpex
2017/07/09 全球购物
服装店营销方案
2014/03/10 职场文书
羽毛球比赛策划方案
2014/06/13 职场文书
教育实践活动对照检查材料
2014/09/23 职场文书
自愿离婚协议书范文2014
2014/10/12 职场文书
2014年信息宣传工作总结
2014/12/18 职场文书
学校党风廉政建设调研报告
2015/01/01 职场文书
大学学生会辞职信
2015/05/13 职场文书
三好学生主要事迹怎么写
2015/11/03 职场文书
Python必备技巧之字符数据操作详解
2022/03/23 Python