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获取单个程序CPU使用情况趋势图
Mar 10 Python
使用Python脚本对Linux服务器进行监控的教程
Apr 02 Python
用Python写一个无界面的2048小游戏
May 24 Python
Python入门之三角函数atan2()函数详解
Nov 08 Python
详解如何利用Cython为Python代码加速
Jan 27 Python
python 读取文件并替换字段的实例
Jul 12 Python
使用python获取(宜宾市地震信息)地震信息
Jun 20 Python
python批量图片处理简单示例
Aug 06 Python
Tensorflow进行多维矩阵的拆分与拼接实例
Feb 07 Python
Python线程threading模块用法详解
Feb 26 Python
Django的ListView超详细用法(含分页paginate)
May 21 Python
matplotlib交互式数据光标实现(mplcursors)
Jan 13 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
PHP程序开发范例学习之表单 获取文本框的值
2011/08/08 PHP
深入PHP操作MongoDB的技术总结
2013/06/02 PHP
thinkphp实现面包屑导航(当前位置)例子分享
2014/05/10 PHP
神盾加密解密教程(三)PHP 神盾解密工具
2014/06/08 PHP
php通过pecl方式安装扩展的实例讲解
2018/02/02 PHP
JavaScript 继承详解(一)
2009/07/13 Javascript
JavaScript中的一些定位属性[图解]
2010/07/14 Javascript
使用GruntJS构建Web程序之构建篇
2014/06/04 Javascript
jQuery中is()方法用法实例
2015/01/06 Javascript
JS 实现倒计时数字时钟效果【附实例代码】
2016/03/30 Javascript
微信小程序  自定义创建详细介绍
2016/10/27 Javascript
基于javascript的Form表单验证
2016/12/29 Javascript
JS获取一个表单字段中多条数据并转化为json格式
2017/10/17 Javascript
JS实现键值对遍历json数组功能示例
2018/05/30 Javascript
Angular ui-roter 和AngularJS 通过 ocLazyLoad 实现动态(懒)加载模块和依赖
2018/11/25 Javascript
图解javascript作用域链
2019/05/27 Javascript
wepy--用vantUI 实现上弹列表并选择相应的值操作
2020/11/03 Javascript
Flexible.js可伸缩布局实现方法详解
2020/11/13 Javascript
原生js中运算符及流程控制示例详解
2021/01/05 Javascript
[51:53]DOTA2-DPC中国联赛 正赛 RNG vs Dragon BO3 第二场 1月24日
2021/03/11 DOTA
在Python的Flask框架中实现单元测试的教程
2015/04/20 Python
使用Python的Twisted框架编写非阻塞程序的代码示例
2016/05/25 Python
python如何为被装饰的函数保留元数据
2018/03/21 Python
python实现对指定输入的字符串逆序输出的6种方法
2018/04/26 Python
python修改txt文件中的某一项方法
2018/12/29 Python
Python脚本调试工具安装过程
2021/01/11 Python
HTML5在IE10、火狐下中文乱码问题的解决方法
2013/11/18 HTML / CSS
LINUX下线程,GDI类的解释
2012/04/17 面试题
小学生植树节活动总结
2014/07/04 职场文书
中国梦演讲稿3分钟
2014/08/19 职场文书
国庆节演讲稿范文2014
2014/09/19 职场文书
个人查摆问题自查报告
2014/10/16 职场文书
项目经理岗位职责
2015/01/31 职场文书
酒店前台岗位职责
2015/04/16 职场文书
2016年国培心得体会及反思
2016/01/13 职场文书
2016年学生会感恩节活动总结
2016/04/01 职场文书