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中元类用法实例
Oct 10 Python
python实现颜色rgb和hex相互转换的函数
Mar 19 Python
用Python写一个无界面的2048小游戏
May 24 Python
详谈Python2.6和Python3.0中对除法操作的异同
Apr 28 Python
Python中函数eval和ast.literal_eval的区别详解
Aug 10 Python
Python 批量合并多个txt文件的实例讲解
May 08 Python
python使用epoll实现服务端的方法
Oct 16 Python
python高效过滤出文件夹下指定文件名结尾的文件实例
Oct 21 Python
Python中函数的基本定义与调用及内置函数详解
May 13 Python
Python3实现汉语转换为汉语拼音
Jul 08 Python
python SocketServer源码深入解读
Sep 17 Python
基于Python实现ComicReaper漫画自动爬取脚本过程解析
Nov 11 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上传apk后自动提取apk包信息的使用(示例下载)
2013/04/26 PHP
php查询mysql大量数据造成内存不足的解决方法
2015/03/04 PHP
利用PHP绘图函数实现简单验证码功能的方法
2016/10/18 PHP
PHP+Ajax无刷新带进度条图片上传示例
2017/02/08 PHP
yii2 在控制器中验证请求参数的使用方法
2019/06/19 PHP
Aliyun Linux 编译安装 php7.3 tengine2.3.2 mysql8.0 redis5的过程详解
2020/10/20 PHP
javascript右下角弹层及自动隐藏(自己编写)
2013/11/20 Javascript
node.js中的http.createClient方法使用说明
2014/12/15 Javascript
浅谈JavaScript中的String对象常用方法
2015/02/25 Javascript
浅谈angularJS 作用域
2015/07/05 Javascript
JavaScript判断手机号运营商是移动、联通、电信还是其他(代码简单)
2015/09/25 Javascript
IE下JS保存图片的简单实例
2016/07/15 Javascript
AngularGauge 属性解析详解
2016/09/06 Javascript
js判断所有表单项不为空则提交表单的实现方法
2016/09/09 Javascript
jquery实现图片平滑滚动详解
2017/03/22 jQuery
JavaScript实现的可变动态数字键盘控件方式实例代码
2017/07/15 Javascript
angular2 ng2-file-upload上传示例代码
2018/08/23 Javascript
vue 利用路由守卫判断是否登录的方法
2018/09/29 Javascript
vue的keep-alive用法技巧
2019/08/15 Javascript
ES6学习笔记之字符串、数组、对象、函数新增知识点实例分析
2020/01/22 Javascript
Python中__init__和__new__的区别详解
2014/07/09 Python
python判断文件是否存在,不存在就创建一个的实例
2019/02/18 Python
Python利用lxml模块爬取豆瓣读书排行榜的方法与分析
2019/04/15 Python
python实现通过flask和前端进行数据收发
2019/08/22 Python
使用python将微信image下.dat文件解密为.png的方法
2020/11/30 Python
猫途鹰英国网站:TripAdvisor英国(旅游社区和旅游评论)
2016/08/30 全球购物
VIVOBAREFOOT赤脚鞋:让您的脚做自然的事情
2017/06/01 全球购物
AutoShack.com加拿大:北美主要的汽车零部件零售商
2019/07/24 全球购物
本科毕业生的求职信范文
2013/11/20 职场文书
旅游项目开发策划书
2014/01/18 职场文书
小学清明节活动方案
2014/03/08 职场文书
大班上学期幼儿评语
2014/04/30 职场文书
初中班长竞选稿
2015/11/20 职场文书
商业计划书格式、范文
2019/03/21 职场文书
文明医院的标语集锦!
2019/07/24 职场文书
Python基础数据类型tuple元组的概念与用法
2021/08/02 Python