python实现图片转字符画


Posted in Python onFebruary 19, 2021

本文实例为大家分享了python实现图片转字符画的具体代码,供大家参考,具体内容如下

源码(注释很详细):

# -*- coding=utf-8 -*-
###################################
#1:import argparse

#2:parser = argparse.ArgumentParser()

#3:parser.add_argument()

#4:parser.parse_args()

#解释:首先导入该模块;然后创建一个解析对象;然后向该对象中添加你要关注的命令行参数和选项,每一个add_argument方法对应一个你要关注的参数或选项;

#最后调用parse_args()方法进行解析;解析成功之后即可使用

###################################


from PIL import Image #从PIL模块中引入Image这个类
import argparse #引入argparse这个模块。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的列表,其实就是让图片上的灰度与字符对应
ascii_char = list("$@B%8&WM#*oahkbdpqwmZO0QLCJUYXzcvunxrjft/\|()1{}[]?-_+~<>i!lI;:,\"^`'. ")

# 将256灰度映射到70个字符上
def get_char(r,g,b,alpha = 256): #这个调用跟im.getpixel函数有关,这个函数是根据图片的横纵坐标,把图片解析成r,g,b,alpha(灰度),有关的四个参数,所以这里输入参数是四个
 if alpha == 0: #如果灰度是0,说明这里没有图片
 return ' '
 length = len(ascii_char)#计算这些字符的长度
 gray = int(0.2126 * r + 0.7152 * g + 0.0722 * b)#把图片的RGB值转换成灰度值

 unit = (256.0 + 1)/length #257/length
 return ascii_char[int(gray/unit)] #这个相当于是选出了灰度与哪个字符对应。

if __name__ == '__main__':#如果是本程序调用,则执行以下程序

 im = Image.open(IMG)#打开图片
 im = im.resize((WIDTH,HEIGHT), Image.NEAREST)#更改图片的显示比例

 txt = ""#txt初始值为空

 for i in range(HEIGHT):#i代表纵坐标
 for j in range(WIDTH):#j代表横坐标
 txt += get_char(*im.getpixel((j,i)))#把图片按照横纵坐标解析成r,g,b以及alpha这几个参数,然后调用get_char函数,把对应的图片转换成灰度值,把对应值得字符存入txt中
 txt += '\n'#每行的结尾处,自动换行

 print(txt)#在界面打印txt文件

 #字符画输出到文件
 if OUTPUT:
 with open(OUTPUT,'w') as f:#文件输出
 f.write(txt)
 else:
 with open("output.txt",'w') as f:#文件输出
 f.write(txt)

使用指南:

进入程序所在目录:输入图示命令:python ascii.py lanpang.png,ascii.py是程序名,lanpang.png是图片名

python实现图片转字符画

图片:lanpang.png

python实现图片转字符画

效果图:

python实现图片转字符画

图片太大,截图不全,用Windows命令行打开看看,文件为output.txt

windows命令行打开文本文件的命令是:type 文件名

例如:type output.txt

python实现图片转字符画

打开后效果图:

python实现图片转字符画

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python 异常处理实例详解
Mar 12 Python
python通过pil为png图片填充上背景颜色的方法
Mar 17 Python
解决Python获取字典dict中不存在的值时出错问题
Oct 17 Python
Python/ArcPy遍历指定目录中的MDB文件方法
Oct 27 Python
python logging模块的使用总结
Jul 09 Python
浅谈pytorch torch.backends.cudnn设置作用
Feb 20 Python
基于Python测试程序是否有错误
May 16 Python
完美解决Django2.0中models下的ForeignKey()问题
May 19 Python
基于python 取余问题(%)详解
Jun 03 Python
Python爬虫之爬取淘女郎照片示例详解
Jul 28 Python
python 实现倒计时功能(gui界面)
Nov 11 Python
python-图片流传输的思路及示例(url转换二维码)
Dec 21 Python
python读取图片颜色值并生成excel像素画的方法实例
Feb 19 #Python
python 基于DDT实现数据驱动测试
Feb 18 #Python
详解解决jupyter不能使用pytorch的问题
Feb 18 #Python
python 使用openpyxl读取excel数据
Feb 18 #Python
Python用SSH连接到网络设备
Feb 18 #Python
python 实现IP子网计算
Feb 18 #Python
详解python3 GUI刷屏器(附源码)
Feb 18 #Python
You might like
全国FM电台频率大全 - 20 广西省
2020/03/11 无线电
php抓即时股票信息
2006/10/09 PHP
php二维数组排序与默认自然排序的方法介绍
2013/04/27 PHP
ThinkPHP添加更新标签的方法
2014/12/05 PHP
MacOS 安装 PHP的图片裁剪扩展Tclip
2015/03/25 PHP
详解PHP中的Traits
2015/07/29 PHP
通过PHP自带的服务器来查看正则匹配结果的方法
2015/12/24 PHP
PHP实现随机生成水印图片功能
2017/03/22 PHP
javascript采用数组实现tab菜单切换效果
2012/12/12 Javascript
js实现键盘Enter键提交表单的方法
2015/05/27 Javascript
功能强大的Bootstrap组件(结合js)
2016/08/03 Javascript
JS数组返回去重后数据的方法解析
2017/01/03 Javascript
package.json文件配置详解
2017/06/15 Javascript
jquery.validate表单验证插件使用详解
2017/06/21 jQuery
axios发送post请求springMVC接收不到参数的解决方法
2018/03/05 Javascript
详解Puppeteer前端自动化测试实践
2019/02/21 Javascript
vue-cli 3 全局过滤器的实例代码详解
2019/06/03 Javascript
[01:38]DOTA2辉夜杯 欢乐的观众现场采访
2015/12/26 DOTA
[08:38]DOTA2-DPC中国联赛 正赛 VG vs Elephant 选手采访
2021/03/11 DOTA
Python动态加载模块的3种方法
2014/11/22 Python
Python实现堆排序的方法详解
2016/05/03 Python
使用Pyinstaller的最新踩坑实战记录
2017/11/08 Python
详解Python在七牛云平台的应用(一)
2017/12/05 Python
解决vscode python print 输出窗口中文乱码的问题
2018/12/03 Python
Python 离线工作环境搭建的方法步骤
2019/07/29 Python
Python 实现顺序高斯消元法示例
2019/12/09 Python
Python中的特殊方法以及应用详解
2020/09/20 Python
HTML5新增加标签和功能概述
2016/09/05 HTML / CSS
美国基督教约会网站:ChristianCafe.com
2020/02/04 全球购物
客服实习的个人自我鉴定
2013/10/20 职场文书
公开服务承诺制度
2014/03/26 职场文书
安全演讲稿大全
2014/05/09 职场文书
2014年英语教师工作总结
2014/12/03 职场文书
队列队形口号
2015/12/25 职场文书
2016校本研修培训心得体会
2016/01/08 职场文书
MySQL下使用Inplace和Online方式创建索引的教程
2021/05/26 MySQL