python转图片为字符图(Python实现图片转字符画的代码实例)
类别:脚本大全 浏览量:1814
时间:2022-01-22 01:35:22 python转图片为字符图
Python实现图片转字符画的代码实例原理
1. 计算出图片颜色对应的灰度值,计算公式如下
gray = 0.2126 * r + 0.7152 * g + 0.0722 * b
2. 根据灰度值,从字符集中获取图片中每个像素点对应的字符
代码
|
# !/usr/bin/env 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 = 50 ) #输出字符画宽 parser.add_argument( '--height' , type = int , default = 50 ) #输出字符画高 #获取参数 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;:,\"^`'. " ) def get_char(r,g,b,alpha = 256 ): """将256灰度映射到70个字符上""" if alpha = = 0 : return ' ' length = len (ascii_char) # 计算灰度的公式 gray = int ( 0.2126 * r + 0.7152 * g + 0.0722 * b) unit = ( 256.0 + 1 ) / length index = int (gray / unit) return ascii_char[index] 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)z |
运行结果
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对开心学习网的支持。如果你想了解更多相关内容请查看下面相关链接
原文链接:https://blog.csdn.net/topleeyap/article/details/78821081
您可能感兴趣
- python旅游(详解Python 爬取13个旅游城市,告诉你五一大家最爱去哪玩?)
- python识别验证码教程(Python3.5 + sklearn利用SVM自动识别字母验证码方法示例)
- python中的冒号怎么看(python 列表中[ ]中冒号‘:’的作用)
- python学生管理系统设计代码(python学生管理系统开发)
- python对列表排序(Python实现对特定列表进行从小到大排序操作示例)
- opencv人脸识别算法(python利用Opencv实现人脸识别功能)
- pythonweb和nodejs(Node与Python 双向通信的实现代码)
- python 内存读写(详解python持久化文件读写)
- python 多进程的启动和停止(Python3.5多进程原理与用法实例分析)
- 用python如何写tkinter(浅谈python3.6的tkinter运行问题)
- python编辑redis(python使用pipeline批量读写redis的方法)
- python ssh登录服务器(python利用跳板机ssh远程连接redis的方法)
- python opencv图像表格处理(Opencv-Python图像透视变换cv2.warpPerspective的示例)
- python协程解释(在python里从协程返回一个值的示例)
- python3web编程基础教程(python初学者,用python实现基本的学生管理系统python3代码实例)
- python 正则表达式语法大全(python re库的正则表达式入门学习教程)
- 寒假旅游攻略(成都寒假旅游攻略)
- 菲律宾旅游攻略(菲律宾旅游攻略地图)
- 清华大学难考吗(清华大学考研录取分数线)
- 观花盆栽佛肚竹盆景制作及养护(观花盆栽佛肚竹盆景制作及养护)
- 春天养佛肚竹,做好这几件事,叶绿根壮寓意好 越养越旺家(春天养佛肚竹做好这几件事)
- 律界衣品最好,时尚圈学识数高,41岁的Amal堪称现实版的傲骨贤妻(时尚圈学识数高)
热门推荐
- C#操作datatable
- elasticsearchwindows分词器配置(docker 部署 Elasticsearch kibana及ik分词器详解)
- python里import的是什么(python中import与from方法总结推荐)
- python多线程实现(python多线程并发让两个LED同时亮的方法)
- python语言案例教程单元测试(Python单元和文档测试实例详解)
- css3特性动画图(CSS3+DIV实现漂亮的动画彩色标签)
- HttpWebRequest的使用
- 去除inline-block元素间的间隙
- dedecms网站二次开发教程(DEDECMS实现自定义表单模型分步提交实现思路)
- js如何生成随机数
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9