Python入门项目——图片转字符画
2017-05-15 10:20
260 查看
1、pillow库 和 argparse 模块
Pillow是Python里的图像处理库(PIL:Python Image Library),提供了了广泛的文件格式支持,强大的图像处理能力,主要包括图像储存、图像显示、格式转换以及基本的图像处理操作等
argarse:argparse是python用于解析命令行参数和选项的标准模块
用法:
1:import argparse # 导入该模块
2:parser = argparse.ArgumentParser() # 创建模块的解析对象
3:parser.add_argument() # 添加要关注的命令行对象
4:parser.parse_args() # 获取命令行参数
2、实现思路
A.首先在已经Python环境下安装pillow库
首先找到你的Python安装目录下的Scripts\easy_install.exe可执行程序,点击进入后输入安装命令:
easy_install.exe pip
显示安装成功后打开cmd界面
输入命令 pip
在通过pip命令:pip install pillow
安装pillow库
B、实现原理
I.实现图片转字符画,找到替代画的字符
II.实现字符和单色的对应,即:灰度值和RGB颜色的映射,灰度值公式
III.将转换成功的字符输出到一个txt文本文件中
C、实现代码
Pillow是Python里的图像处理库(PIL:Python Image Library),提供了了广泛的文件格式支持,强大的图像处理能力,主要包括图像储存、图像显示、格式转换以及基本的图像处理操作等
argarse:argparse是python用于解析命令行参数和选项的标准模块
用法:
1:import argparse # 导入该模块
2:parser = argparse.ArgumentParser() # 创建模块的解析对象
3:parser.add_argument() # 添加要关注的命令行对象
4:parser.parse_args() # 获取命令行参数
2、实现思路
A.首先在已经Python环境下安装pillow库
首先找到你的Python安装目录下的Scripts\easy_install.exe可执行程序,点击进入后输入安装命令:
easy_install.exe pip
显示安装成功后打开cmd界面
输入命令 pip
在通过pip命令:pip install pillow
安装pillow库
B、实现原理
I.实现图片转字符画,找到替代画的字符
II.实现字符和单色的对应,即:灰度值和RGB颜色的映射,灰度值公式
III.将转换成功的字符输出到一个txt文本文件中
C、实现代码
from PIL import Image # 导入PIL库下的Iamge模块 import argparse # 导入argparse模块,用于接收命令行参数 #创建一个 argparse模块的解析对象 parse = argparse.ArgumentParser() # 匹配命令行参数 # 首先设置要匹配的是一个文件 parse.add_argument("file") # 一个 “-”是匹配首字母为,两个“--”匹配全文 parse.add_argument("-o","--output") # 设置匹配到的高度,设置高度的类型和值 parse.add_argument("--width",type=int,default=80) # 设置匹配到的宽度,设置宽度的类型和值 parse.add_argument("--height",type=int,default=42) # 获取命令行的参数 args = parse.parse_args() # 将参数值拆分 # 图像文件 IMG = args.file # 图像宽度 WIDTH = args.width # 图像高度 HEIGHT = args.height # 输出文件名字 OUTPUT = args.output # 设置转换字符,70个字符 ascii_char = list("$@B%8&WM#*oahkbdpqwmZO0QLCJUYXzcvunxrjft/\|()1{}[]?-_+~<>i!lI;:,\"^`'. ") # 设置图片上的像素点的转换字符 # RGB:三原色,alpha:色彩空间,0-255 def get_char(r, g, b, alpha=256): # 空值判断 if alpha == 0: return ' ' # 计算转换字符列表的长度 length = len(ascii_char) # 灰度值公式 #灰度值:指黑白图像中点的颜色深度,范围一般从0到255,白色为255,黑色为0,故黑白图片也称灰度图像 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__": # 打开并识别给定的图像 pic = Image.open(IMG) # 重新采样,并设置大小 # 前面参数为高和宽的一个元组,默认为NEAREST,还有其他三个参数 pic = pic.resize((WIDTH,HEIGHT),Image.NEAREST) # 设置一个空的字符串,用于保存像素转换的字符 txt = "" # 遍历获取的图像,读取图像的像素值并返回 # 将获取的像素值转换成字符,并用字符集中的字符替代 # 这里用的高和宽是上面重新设置的高和宽 for i in range(HEIGHT): for j in range(WIDTH): txt += get_char(*pic.getpixel((j,i))) txt += "\n" # 打印转换后的字符串 print(txt) # 将转换后的字符写入文件 if OUTPUT: f = open("OUTPUT","w") f.write(txt) else: f = open("output.txt","w") f.write(txt)3、实现效果
相关文章推荐
- python小项目--图片转化为字符画
- python小项目二:图片转字符画
- Python项目之图片转字符画学习笔记
- Python入门小项目
- python 一百行代码将图片转成字符画
- python爬虫入门教程之点点美女图片爬虫代码分享
- python开发之图片转字符画
- 从零学python系列之教你如何根据图片生成字符画
- 一张图片入门Python
- 【Python】爬虫入门--抓取网站图片
- 【学院官方整理】Python学习路线图-适合自学者从入门到项目开发(视频+文档) 干货提炼
- python小练习:Opencv中将图片转为字符画
- 一个简单的 python 实现 图片同步脚本 ,对于有图片群集的项目有参考价值
- Python3爬虫入门之贴吧图片批量获取
- 将普通图片转化为字符画(Python)
- Python 图片转字符画
- 从零学python系列之教你如何根据图片生成字符画
- 一张图片入门Python
- python Django 1.7 中文入门 (官网) 05 第一个项目1_1
- Python将图片转换为字符画