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 相关文章推荐
通过mod_python配置运行在Apache上的Django框架
Jul 22 Python
解决Python requests 报错方法集锦
Mar 19 Python
Python数据分析之双色球中蓝红球分析统计示例
Feb 03 Python
取numpy数组的某几行某几列方法
Apr 03 Python
python实现两个字典合并,两个list合并
Dec 02 Python
Python zip函数打包元素实例解析
Dec 11 Python
Python Numpy,mask图像的生成详解
Feb 19 Python
Python响应对象text属性乱码解决方案
Mar 31 Python
python打开文件的方式有哪些
Jun 29 Python
python如何实时获取tcpdump输出
Sep 16 Python
记录一下scrapy中settings的一些配置小结
Sep 28 Python
Pytorch自定义Dataset和DataLoader去除不存在和空数据的操作
Mar 03 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
Codeigniter操作数据库表的优化写法总结
2014/06/12 PHP
详细解读PHP中接口的应用
2015/08/12 PHP
基于swoole实现多人聊天室
2018/06/14 PHP
php下的原生ajax请求用法实例分析
2020/02/28 PHP
javascript入门·图片对象(无刷新变换图片)\滚动图像
2007/10/01 Javascript
Extjs TriggerField在弹出窗口显示不出问题的解决方法
2010/01/08 Javascript
不同的jQuery API来处理不同的浏览器事件
2012/12/09 Javascript
深入理解JS中的变量及作用域、undefined与null
2014/03/04 Javascript
jquery实现对联广告的方法
2015/02/05 Javascript
Jquery基础之事件操作详解
2016/06/14 Javascript
JavaScript中获取时间的函数集
2016/08/16 Javascript
AnjularJS中$scope和$rootScope的区别小结
2016/09/18 Javascript
Vue.JS入门教程之处理表单
2016/12/01 Javascript
纯原生js实现table表格的增删
2017/01/05 Javascript
BootStrap table删除指定行的注意事项(笔记整理)
2017/02/05 Javascript
vue.js实现数据动态响应 Vue.set的简单应用
2017/06/15 Javascript
详解React Native网络请求fetch简单封装
2017/08/10 Javascript
JS 中document.write()的用法和清空的原因浅析
2017/12/04 Javascript
vue项目中使用lib-flexible解决移动端适配的问题解决
2018/08/23 Javascript
vue项目开发中setTimeout等定时器的管理问题
2018/09/13 Javascript
Javascript异步执行不按顺序解决方案
2020/04/30 Javascript
Vue页面手动刷新,实现导航栏激活项还原到初始状态
2020/08/06 Javascript
[45:52]完美世界DOTA2联赛PWL S3 Forest vs INK ICE 第二场 12.09
2020/12/12 DOTA
Python3实现带附件的定时发送邮件功能
2020/12/22 Python
TensorFlow 模型载入方法汇总(小结)
2018/06/19 Python
Python使用MyQR制作专属动态彩色二维码功能
2019/06/04 Python
解决Keras 与 Tensorflow 版本之间的兼容性问题
2020/02/07 Python
Django关于admin的使用技巧和知识点
2020/02/10 Python
keras自定义回调函数查看训练的loss和accuracy方式
2020/05/23 Python
Python脚本调试工具安装过程
2021/01/11 Python
css3 中的新特性加强记忆详解
2016/04/16 HTML / CSS
移动端解决悬浮层(悬浮header、footer)会遮挡住内容的3种方法
2015/03/27 HTML / CSS
澳大利亚男士西服品牌:M.J.Bale
2018/02/06 全球购物
会计工作心得体会
2014/01/13 职场文书
主题教育活动总结
2014/05/05 职场文书
springboot 自定义配置 解决Boolean属性不生效
2022/03/18 Java/Android