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中使用判断语句和循环的教程
Apr 25 Python
在Python的Django框架的视图中使用Session的方法
Jul 23 Python
解决python升级引起的pip执行错误的问题
Jun 12 Python
在python中获取div的文本内容并和想定结果进行对比详解
Jan 02 Python
Python基础教程之if判断,while循环,循环嵌套
Apr 25 Python
Python基础学习之基本数据结构详解【数字、字符串、列表、元组、集合、字典】
Jun 18 Python
简单的Python调度器Schedule详解
Aug 30 Python
Django框架 查询Extra功能实现解析
Sep 04 Python
python使用PIL和matplotlib获取图片像素点并合并解析
Sep 10 Python
python 伯努利分布详解
Feb 25 Python
python 动态绘制爱心的示例
Sep 27 Python
Django开发RESTful API实现增删改查(入门级)
May 10 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抓取及分析网页的方法详解
2016/04/26 PHP
浅谈PHP中的数据传输CURL
2016/09/06 PHP
简单JS代码压缩器
2006/10/12 Javascript
使用jQuery.Validate进行客户端验证(初级篇) 不使用微软验证控件的理由
2010/06/28 Javascript
Jquery常用技巧收集整理篇
2010/11/14 Javascript
jQuery $.extend()用法总结
2014/06/15 Javascript
使用node.js半年来总结的 10 条经验
2014/08/18 Javascript
Bootstrap入门书籍之(一)排版
2016/02/17 Javascript
自己动手制作基于jQuery的Web页面加载进度条插件
2016/06/03 Javascript
js实现图片切换(动画版)
2016/12/25 Javascript
利用Plupload.js解决大文件上传问题, 带进度条和背景遮罩层
2017/03/15 Javascript
JS获取并处理php数组的方法实例分析
2018/09/04 Javascript
使用Vue中 v-for循环列表控制按钮隐藏显示功能
2019/04/23 Javascript
Swiper.js实现移动端元素左右滑动
2019/09/08 Javascript
[02:48]DOTA2超级联赛专访海涛:你们的选择没有错
2013/06/07 DOTA
Python实现的破解字符串找茬游戏算法示例
2017/09/25 Python
Python文件操作中进行字符串替换的方法(保存到新文件/当前文件)
2019/06/28 Python
Python将文字转成语音并读出来的实例详解
2019/07/15 Python
Django项目主urls导入应用中views的红线问题解决
2019/08/10 Python
Python中 CSV格式清洗与转换的实例代码
2019/08/29 Python
使用python实现kNN分类算法
2019/10/16 Python
基于python3实现倒叙字符串
2020/02/18 Python
PyTorch的torch.cat用法
2020/06/28 Python
Madda Fella官网:美国冒险家服装品牌
2020/01/16 全球购物
保加利亚服装和鞋类购物网站:Bibloo.bg
2020/11/08 全球购物
是什么让J2EE适合用来开发多层的分布式的应用
2015/01/16 面试题
个人简历的自荐信
2013/10/23 职场文书
大专学生推荐信范文
2013/11/19 职场文书
请假条范文大全
2014/04/10 职场文书
毕业设计致谢词
2015/05/14 职场文书
2016五一劳动节慰问信
2015/11/30 职场文书
暑假开始了,你的暑假学习计划写好了吗?
2019/07/04 职场文书
springboot @ConfigurationProperties和@PropertySource的区别
2021/06/11 Java/Android
Golang中channel的原理解读(推荐)
2021/10/16 Golang
angular异步验证器防抖实例详解
2022/03/31 Javascript
Win11跳过联网界面创建本地管理账户的3种方法
2022/04/20 数码科技