Python将图片转换为字符画的方法


Posted in Python onJune 16, 2020

最近在学习Python,看到网上用Python将图片转换成字符画便来学习一下

题目意思是,程序读入一个图片,以txt格式输出图片对应的字符画,如图所示:

Python将图片转换为字符画的方法

以下是Python代码:

# coding:utf-8 
 
# 为一张图片生成对应的字符集图片 
 
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("$@B%8&WM#*oahkbdpqwmZO0QLCJUYXzcvunxrjft/\|()1{}[]?-_+~<>i!lI;:,\"^`'. ") 
 
 
# 将256灰度映射到70个字符上 
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.write(txt) 
 else: 
  with open("output.txt", 'w') as f: 
   f.write(txt)

在输出文件中得到如下字符集:

Python将图片转换为字符画的方法

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

Python 相关文章推荐
Python中enumerate函数代码解析
Oct 31 Python
python 匹配url中是否存在IP地址的方法
Jun 04 Python
TensorFlow 模型载入方法汇总(小结)
Jun 19 Python
python2 与 pyhton3的输入语句写法小结
Sep 10 Python
python查找指定文件夹下所有文件并按修改时间倒序排列的方法
Oct 21 Python
python读取各种文件数据方法解析
Dec 29 Python
Appium Python自动化测试之环境搭建的步骤
Jan 23 Python
Python3实现汉语转换为汉语拼音
Jul 08 Python
通过Python实现Payload分离免杀过程详解
Jul 13 Python
Python多分支if语句的使用
Sep 03 Python
python统计mysql数据量变化并调用接口告警的示例代码
Sep 21 Python
Python中glob库实现文件名的匹配
Jun 18 Python
Python实现从log日志中提取ip的方法【正则提取】
Mar 31 #Python
Python+OpenCV实现车牌字符分割和识别
Mar 31 #Python
python Opencv将图片转为字符画
Feb 19 #Python
python实现批量按比例缩放图片效果
Mar 30 #Python
python放大图片和画方格实现算法
Mar 30 #Python
python实现数独游戏 java简单实现数独游戏
Mar 30 #Python
简单实现python数独游戏
Mar 30 #Python
You might like
ThinkPHP3.1查询语言详解
2014/06/19 PHP
教你php如何实现验证码
2016/01/20 PHP
PHP MSSQL 分页实例
2016/04/13 PHP
PHP经典实用正则表达式小结
2017/05/04 PHP
基于PHP的登录和注册的功能的实现
2020/08/06 PHP
js中数组排序sort方法的原理分析
2014/11/20 Javascript
jQuery入门之层次选择器实例简析
2015/12/11 Javascript
jQuery实现的简单排序功能示例【冒泡排序】
2017/01/13 Javascript
谈谈Vue.js——vue-resource全攻略
2017/01/16 Javascript
微信小程序 九宫格实例代码
2017/01/21 Javascript
浅谈Angular 的变化检测的方法
2018/03/01 Javascript
基于Vue+element-ui 的Table二次封装的实现
2018/07/20 Javascript
vue里面使用mui的弹出日期选择插件实例
2018/09/16 Javascript
vue 进阶之实现父子组件间的传值
2019/04/26 Javascript
浅析Vue 防抖与节流的使用
2019/11/14 Javascript
浅析微信小程序自定义日历组件及flex布局最后一行对齐问题
2020/10/29 Javascript
详解Python中的Cookie模块使用
2015/07/06 Python
Python机器学习算法之k均值聚类(k-means)
2018/02/23 Python
浅析python中的迭代与迭代对象
2018/10/08 Python
python3爬虫获取html内容及各属性值的方法
2018/12/17 Python
django 做 migrate 时 表已存在的处理方法
2019/08/31 Python
python中的函数递归和迭代原理解析
2019/11/14 Python
wxPython窗体拆分布局基础组件
2019/11/19 Python
Python生成六万个随机,唯一的8位数字和数字组成的随机字符串实例
2020/03/03 Python
Pycharm如何导入python文件及解决报错问题
2020/05/10 Python
在pycharm中文件取消用 pytest模式打开的操作
2020/09/01 Python
ALDO加拿大官网:加拿大女鞋品牌
2018/12/22 全球购物
雷蛇美国官网:Razer
2020/04/03 全球购物
高中数学教师求职信
2013/10/30 职场文书
给排水工程师岗位职责
2013/11/21 职场文书
乡镇干部先进事迹材料
2014/02/03 职场文书
工厂标语大全
2014/10/06 职场文书
2014年大学生工作总结
2014/11/20 职场文书
安全主题班会教案
2015/08/12 职场文书
导游词之青岛崂山
2019/12/27 职场文书
Go语言中的UTF-8实现
2021/04/26 Golang