python图片转字符画(转)
先上代码:
- 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("@#&$%*o!;.")
- # 将256灰度映射到70个字符上
- def get_char(r,g,b,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 img2txt.py xxxx.jpg
会在img2txt.py 文件所在的目录里生成一个output.txt文件.
运行的前提,需要安装PIL
window7 下安装使用:
cmd下执行命令: easy-install pillow
如果出错,就去网站直接下载文件,我的系统是windows7 64,python为3.7,则下载:Pillow-6.2.1-cp37-cp37m-win_amd64.whl
然后执行:
pip install Pillow-6.2.1-cp37-cp37m-win_amd64.whl
python图片转字符画(转)的更多相关文章
- Python 图片转字符画
Python 图片转字符画 一.课程介绍 1. 课程来源 原创 2. 内容简介 本课程讲述怎样使用 Python 将图片转为字符画 3. 前置课程 Python编程语言 Linux 基础入门(新版) ...
- Python 图片转字符画 学习笔记
Python 图片转字符画 学习笔记 标签(空格分隔): Python 声明:此文章和所有代码是学习笔记,非原创,原文教程地址:https://www.shiyanlou.com/courses/37 ...
- [笔记] Python 图片转字符画
一.介绍 用Python 代码完成图片转字符画 二.python 环境 Python 3.6.6 pillow 5.1.0 Python 图像处理库, 需要另外安装 三.原理 gray = 0.21 ...
- Python图片转字符画
PIL安装很麻烦,推荐下载exe直接安装 PIL官网:http://pythonware.com/products/pil/ 但现在里面下载链接访问不了,我把32位和64位版本上传到博客园以供下载 P ...
- 教程,Python图片转字符堆叠图
Python 图片转字符画 一.实验说明 1. 环境登录 无需密码自动登录, 2. 环境介绍 本实验环境采用带桌面的UbuntuLinux环境,实验中会用到桌面上的程序: LX终端(LXTermina ...
- 使用Python生成ASCII字符画
使用Python生成ASCII字符画 在很多的网站主页中或者程序的注释中会有一些好看的字符注释画.显得很牛逼的样子 例如: 知乎 _____ _____ _____ _____ /\ \ /\ \ / ...
- python学习---50行代码实现图片转字符画2
from PIL import Image codeLib = '''@B%8&WM#*oahkbdpqwmZO0QLCJUYXzcvunxrjft/\|()1{}[]?-_+~<> ...
- python学习---50行代码实现图片转字符画1
转自:https://blog.csdn.net/mm1030533738/article/details/78447714 项目链接: https://www.shiyanlou.com/cours ...
- 20个python项目--图片转字符画
转自实验楼:https://www.shiyanlou.com/courses/370/learning/?id=1191 代码: # -*- coding:utf-8 -*- from PIL im ...
随机推荐
- html+css实现奥运五环(环环相扣)
<!DOCTYPE html> <html> <head> <title>奥运五环</title> <style type=" ...
- docker 安装 gitlab 中文社区版
docker pull twang2218/gitlab-ce-zh 创建一个docker 目录 /usr/local/docker/gitlab 创建一个 docker-compose.yml ve ...
- C语言课程程序设计
项目名称和目标 项目为基于EasyX库的RPG游戏,目标能实现控制游戏主角自由移动,能与NPC对话交互. 我组目前还未确定具体项目名称 项目主体功能 项目的主体功能具有一个游戏所拥有的完整功能,包括但 ...
- JVM 堆内存设置原理(转)
堆内存设置 原理 JVM堆内存分为2块:Permanent Space 和 Heap Space. Permanent 即 持久代(Permanent Generation),主要存放的是Java类定 ...
- Vue.js官方文档学习笔记(二)组件化应用的构建
组件化应用的构建 组件化应用允许我们使用小型.独立和通常可复用的组件构建大型应用. Vue注册组件 Vue.component('todo-item',{template:'<li>这是个 ...
- SIGCHLD和wait/waipid函数的关系
SIGCHILD只是在子进程退出的时候发送给父进程的一个信号值,这是一种异步通知父进程的方式.父进程可以捕获,忽略这个信号,默认动作是忽略此信号. 常用的使用方式是,当SIGCHILD信号发生时候,主 ...
- vue项目中引入循环执行setInterval或者requestAnimationFrame的用法等
项目中循环计时处理某些方法的情况还是比较常见的,一般会用setInterval来处理,但是这个方法会似的页面卡顿等使用体验不好. 所以就使用浏览器提供的requestAnimationFrame方法, ...
- CentOS6.6安装使用MyCat
https://blog.csdn.net/u012948302/article/details/78902092 1. 安装Java环境MyCAT 是使用 JAVA 语言进行编写开发,使用前需要先安 ...
- django Paginator 让分页变得完美
参考大佬地址:https://www.zmrenwu.com/courses/django-blog-tutorial/materials/21/ 类视图 from django.contrib.au ...
- mysql导入导出数据,备份,恢复数据
MYSQL 实现导入数据 .备份和恢复数据库 1.使用msql命令导入数据 # mysql -uroot -p 需要选择一个数据库 < runoob.sql #mysql -u username ...