一百行python代码将图片转成字符画


Posted in Python onFebruary 19, 2021

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

一百行python代码将图片转成字符画

一百行python代码将图片转成字符画

一百行python代码将图片转成字符画

一百行python代码将图片转成字符画

该代码引用了PIL库的Image,所以必须先安装PIP,再安装PIL,记住,我的64位系统居然是选WIN32 结尾的那个whl文件,然后才安装成功。

下面贴代码:

from PIL import Image
import argparse

#can shu chu li
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!;:,\"^`'.")

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.writh(txt)
 else:
 with open("output.txt",'w') as f:
 f.write(txt)

在安装好环境之后,将上面程序保存为XX.py ,运行命令符cd到当前py文件的目录,然后输入:

python XX.py YY.png

XX.py是你当前的python文件名,然后 YY.png是你要转换的图片,图片与py文件要保存在同一个目录;

快试一试吧,超级好玩的。

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

Python 相关文章推荐
使用Python程序抓取新浪在国内的所有IP的教程
May 04 Python
python多进程共享变量
Apr 06 Python
Python实现的用户登录系统功能示例
Feb 05 Python
python3 读取Excel表格中的数据
Oct 16 Python
python3实现表白神器
Apr 09 Python
pycharm创建一个python包方法图解
Apr 10 Python
Python + Requests + Unittest接口自动化测试实例分析
Dec 12 Python
python 如何获取页面所有a标签下href的值
May 06 Python
python 中[0]*2与0*2的区别说明
May 10 Python
Django如何创作一个简单的最小程序
May 12 Python
Python实现Matplotlib,Seaborn动态数据图
May 06 Python
python 学习GCN图卷积神经网络
May 11 Python
Pandas GroupBy对象 索引与迭代方法
Nov 16 #Python
python实现指定字符串补全空格、前面填充0的方法
Nov 16 #Python
pandas 透视表中文字段排序方法
Nov 16 #Python
用Python实现数据的透视表的方法
Nov 16 #Python
pandas pivot_table() 按日期分多列数据的方法
Nov 16 #Python
python生成以及打开json、csv和txt文件的实例
Nov 16 #Python
python判断列表的连续数字范围并分块的方法
Nov 16 #Python
You might like
十天学会php之第八天
2006/10/09 PHP
PHP系统流量分析的程序
2006/10/09 PHP
PHP中file_put_contents追加和换行的实现方法
2017/04/01 PHP
用CSS+JS实现的进度条效果效果
2007/06/05 Javascript
js DOM模型操作
2009/12/28 Javascript
JavaScript使用过程中需要注意的地方和一些基本语法
2010/08/26 Javascript
JavaScript自定义DateDiff函数(兼容所有浏览器)
2012/03/01 Javascript
input输入框鼠标焦点提示信息
2015/03/17 Javascript
深入浅析javascript立即执行函数
2015/10/23 Javascript
动态加载JavaScript文件的两种方法
2016/04/22 Javascript
Bootstrap滚动监听(Scrollspy)插件详解
2016/04/26 Javascript
基于JavaScript实现树形下拉框
2016/08/10 Javascript
Node.js的文件权限及读写flag详解
2016/10/11 Javascript
微信小程序 request接口的封装实例代码
2017/04/26 Javascript
vue2.0 自定义日期时间过滤器
2017/06/07 Javascript
Vue实例中生命周期created和mounted的区别详解
2017/08/25 Javascript
Bootstrap Table 搜索框和查询功能
2017/11/30 Javascript
vue2.0 computed 计算list循环后累加值的实例
2018/03/07 Javascript
快速了解Node中的Stream流是什么
2019/02/13 Javascript
微信小程序实现上传word、txt、Excel、PPT等文件功能
2019/05/23 Javascript
layui实现数据表格table分页功能(ajax异步)
2019/07/27 Javascript
Layui点击图片弹框预览的实现方法
2019/09/16 Javascript
electron-vue开发环境内存泄漏问题汇总
2019/10/10 Javascript
nuxt 自定义 auth 中间件实现令牌的持久化操作
2020/11/05 Javascript
[44:15]国士无双DOTA2 6.82版本详解(上)
2014/09/28 DOTA
将Django框架和遗留的Web应用集成的方法
2015/07/24 Python
python 打印出所有的对象/模块的属性(实例代码)
2016/09/11 Python
django之状态保持-使用redis存储session的例子
2019/07/28 Python
python如何支持并发方法详解
2020/07/25 Python
加拿大租车网站:Enterprise Rent-A-Car
2018/07/26 全球购物
美国眼镜网站:LensCrafters
2020/01/19 全球购物
SIMON MILLER官网:洛杉矶的生活方式品牌
2020/10/19 全球购物
2015年公务员个人工作总结
2015/04/24 职场文书
婚宴父亲致辞
2015/07/27 职场文书
MYSQL数据库使用UTF-8中文编码乱码的解决办法
2021/05/26 MySQL
Java中API的使用方法详情
2022/04/06 Java/Android