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原始字符串(raw strings)用法实例
Oct 13 Python
python求解水仙花数的方法
May 11 Python
Python随机生成信用卡卡号的实现方法
May 14 Python
python队列queue模块详解
Apr 27 Python
Pandas过滤dataframe中包含特定字符串的数据方法
Nov 07 Python
numpy.meshgrid()理解(小结)
Aug 01 Python
Python 实现try重新执行
Dec 21 Python
解决Tensorflow sess.run导致的内存溢出问题
Feb 05 Python
python实现吃苹果小游戏
Mar 21 Python
python3 使用ssh隧道连接mysql的操作
Dec 05 Python
深入浅析Django MTV模式
Sep 04 Python
python中pymysql包操作数据库方法
Apr 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
通过JavaScript或PHP检测Android设备的代码
2011/03/09 PHP
php表单提交问题的解决方法
2011/04/12 PHP
PHP session_start()问题解疑(详细介绍)
2013/07/05 PHP
基于php的CMS中展示文章类实例分析
2015/06/18 PHP
几行代码轻松搞定jquery实现flash8类似的连接效果
2007/05/03 Javascript
jquery 常用操作方法
2010/01/28 Javascript
javascript游戏开发之《三国志曹操传》零部件开发(五)可移动地图的实现
2013/01/23 Javascript
主页面中的两个iframe实现鼠标拖动改变其大小
2013/04/16 Javascript
select、radio表单回显功能实现避免使用jquery载入赋值
2013/06/08 Javascript
jQuery之日期选择器的深入解析
2013/06/19 Javascript
js给页面加style无效果的解决方法
2014/01/20 Javascript
BootStrap初学者对弹出框和进度条的使用感觉
2016/06/27 Javascript
require.js 加载 vue组件 r.js 合并压缩的实例
2016/10/14 Javascript
javascript学习之json入门
2016/12/22 Javascript
JS简单实现点击按钮或文字显示遮罩层的方法
2017/04/27 Javascript
实战node静态文件服务器的示例代码
2018/03/08 Javascript
axios 处理 302 状态码的解决方法
2018/04/10 Javascript
微信小程序如何实现在线客服功能
2019/10/16 Javascript
[06:43]DAC2018 4.5 SOLO赛 Maybe vs Paparazi
2018/04/06 DOTA
浅析Python中的多条件排序实现
2016/06/07 Python
python3.x上post发送json数据
2018/03/04 Python
为什么str(float)在Python 3中比Python 2返回更多的数字
2018/10/16 Python
Python入门Anaconda和Pycharm的安装和配置详解
2019/07/16 Python
scrapy利用selenium爬取豆瓣阅读的全步骤
2020/09/20 Python
HTML5 新表单类型示例代码
2018/03/20 HTML / CSS
NARS化妆品官方商店:美国彩妆品牌
2017/08/26 全球购物
亚洲最大的眼镜批发商和零售商之一:Glasseslit
2018/10/08 全球购物
工作的心得体会
2013/12/31 职场文书
物流专业求职计划书
2014/01/10 职场文书
中学生操行评语大全
2014/04/24 职场文书
家长给学校的建议书
2014/05/15 职场文书
监察建议书格式
2014/05/19 职场文书
卫生标语大全
2014/06/21 职场文书
大学生简历求职信
2014/06/24 职场文书
教师党员个人总结
2015/02/10 职场文书
祝福语集锦:送给毕业同学祝福语
2019/11/21 职场文书