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的id()函数解密过程
Dec 25 Python
python冒泡排序简单实现方法
Jul 09 Python
python topN 取最大的N个数或最小的N个数方法
Jun 04 Python
python实现Zabbix-API监控
Sep 17 Python
Python使用gRPC传输协议教程
Oct 16 Python
python实现推箱子游戏
Mar 25 Python
python实现在函数中修改变量值的方法
Jul 16 Python
python 用户交互输入input的4种用法详解
Sep 24 Python
基于python实现语音录入识别代码实例
Jan 17 Python
python3实现往mysql中插入datetime类型的数据
Mar 02 Python
Virtualenv 搭建 Py项目运行环境的教程详解
Jun 22 Python
python读取并查看npz/npy文件数据以及数据显示方法
Apr 14 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
PHP+AJAX实现无刷新注册(带用户名实时检测)
2007/01/02 PHP
jQuery语法高亮插件支持各种程序源代码语法着色加亮
2013/04/27 Javascript
jquery根据锚点offset值实现动画切换
2014/09/11 Javascript
深入理解Javascript中的自执行匿名函数
2016/06/03 Javascript
利用Javascript实现BMI计算器
2016/08/16 Javascript
Jquery Easyui菜单组件Menu使用详解(15)
2016/12/18 Javascript
JS库之Waypoints的用法详解
2017/09/13 Javascript
JS实现简单的浮动碰撞效果示例
2017/12/28 Javascript
JS/jQuery实现DIV延时几秒后消失或显示的方法
2018/02/12 jQuery
Vue中computed与methods的区别详解
2018/03/24 Javascript
ztree加载完成后显示勾选节点的实现代码
2018/10/22 Javascript
Angular单元测试之事件触发的实现
2020/01/20 Javascript
JS XMLHttpRequest原理与使用方法深入详解
2020/04/30 Javascript
Vue移动端用淘宝弹性布局lib-flexible插件做适配的方法
2020/05/26 Javascript
JavaScript实现通讯录功能
2020/12/27 Javascript
python求pi的方法
2014/10/08 Python
浅谈Python单向链表的实现
2015/12/24 Python
python使用arcpy.mapping模块批量出图
2017/03/06 Python
利用Python将数值型特征进行离散化操作的方法
2018/11/06 Python
浅谈多卡服务器下隐藏部分 GPU 和 TensorFlow 的显存使用设置
2020/06/30 Python
python 实现非极大值抑制算法(Non-maximum suppression, NMS)
2020/10/15 Python
python 提高开发效率的5个小技巧
2020/10/19 Python
css3实现背景颜色渐变让图片不再是唯一的实现方式
2012/12/18 HTML / CSS
Html5 video标签视频的最佳实践
2020/02/26 HTML / CSS
C,C++的几个面试题小集
2013/07/13 面试题
公司经营目标责任书
2015/01/29 职场文书
归元寺导游词
2015/02/06 职场文书
党员身份证明材料
2015/06/19 职场文书
趣味运动会新闻稿
2015/07/17 职场文书
高一军训感想
2015/08/07 职场文书
期中考试后的感想
2015/08/07 职场文书
学校标语口号大全
2015/12/26 职场文书
党员电教片《信仰》心得体会
2016/01/15 职场文书
springboot读取nacos配置文件
2022/05/20 Java/Android
Python+DeOldify实现老照片上色功能
2022/06/21 Python
使用CSS实现音波加载效果
2023/05/07 HTML / CSS