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+os根据文件名自动生成文本)
- python 百度搜索结果(Python模拟百度自动输入搜索功能的实例)
- python写的工具(python调用虹软2.0第三版的具体使用)
- python抓取贴吧标题和图片代码(Python实现的爬取百度贴吧图片功能完整示例)
- python程序运行步骤(详解python运行三种方式)
- python抓取天气数据(Python实战之制作天气查询软件)
- python3安装编程环境(Python3 修改默认环境的方法)
- python strip用法(Python3.5内置模块之shelve模块、xml模块、configparser模块、hashlib、hmac模块用法分析)
- python语法规则讲解(计算机二级python学习教程2 python语言基本语法元素)
- python 二叉树的深度遍历(python 将有序数组转换为二叉树的方法)
- python如何使用yield(YII2.0框架行为Behavior深入详解)
- python基础知识重点(python语言元素知识点详解)
- python3语法规则(Python3解释器知识点总结)
- python樱花绽放代码(新年快乐! python实现绚烂的烟花绽放效果)
- python下划线怎么用(Python3中_下划线和__双下划线的用途和区别)
- python创建文件的方法(Python3.5文件读与写操作经典实例详解)
- 阴阳师孟婆御魂推荐 孟婆御魂搭配毕业套(阴阳师孟婆御魂推荐)
- 袁冰妍终于接到新剧,饰演反追男主,看到合作演员 眼光果然毒辣(袁冰妍终于接到新剧)
- 记忆中的台词(记忆中的台词)
- 袁冰妍轧戏 拍《琉璃》的同时还在拍《将夜》,难怪被骂演技差(拍琉璃的同时还在拍将夜)
- 刚红就耍大牌,《琉璃》角色滤镜碎一地,心疼工作人员(琉璃角色滤镜碎一地)
- 袁冰妍郑业成这对可以处,有脸红情话他们是真的敢说(袁冰妍郑业成这对可以处)
热门推荐
- sqlite删除数据(SQLite Delete详解及实例代码)
- css3常用特性(css3学习之2D转换功能详解)
- docker容器运行环境(Docker 清理环境操作)
- pythonweb和nodejs(Node与Python 双向通信的实现代码)
- mysql的limit的分页使用(获取 MySQL innodb B+tree 的高度的方法)
- CSS3 transition过渡效果
- rabbitmq docker配置(Docker部署Rabbitmq容器实现过程解析)
- php开发中用什么模板(PHP模版引擎原理、定义与用法实例)
- 宝塔面板一键部署教程(使用宝塔面板负载均衡插件的心得和解决的方法)
- css中的float的使用
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9