python实现图片转字符画
最初是在实验楼看到的一个小实验
实验楼-Python 图片转字符画
原文是需要通过命令行运行程序
这里改为直接运行,需要固定一些参数
运行平台: Windows
Python版本: Python3.6
IDE: Sublime Text
1、实验准备
pillow库的安装
pip install pillow
2、实验原理
字符画是一系列字符的组合,我们可以把字符看作是比较大块的像素,一个字符能表现一种颜色,字符的种类越多,可以表现的颜色也越多,图片也会更有层次感。
最终显示的是黑白色的字符画,那么彩色的图片怎么转换成黑白的呢?这里就需要了解灰度值的概念了。
灰度值:指黑白图像中点的颜色深度,范围一般从0到255,白色为255,黑色为0,故黑白图片也称灰度图像。
我们利用下面的公式将像素的RGB值转换成灰度值:
gray = 0.2126 * r + 0.7152 * g + 0.0722 * b
用不同的字符代表不同的灰度值,字符的种类和数量可以根据自己需要的效果进行调整,最好从前往后可以看到明显的变化,最后一个字符为空格符最佳:
ascii_char = list("$@B%8&WM#*oahkbdpqwmZO0QLCJUYXzcvunxrjft/\|()1{}[]?-_+~<>i!lI;:,\"^`'. ")
3、完整代码
#-*- coding:utf-8 -*-
from PIL import Image IMG='D:\Code\python\\test1\\ascii_dora.png' WIDTH=60
HEIGHT=45 ascii_char = list("$@B%8&WM#*oahkbdpqwmZO0QLCJUYXzcvunxrjft/\|()1{}[]?-_+~<>i!lI;:,\"^`'. ") #将256灰度映射到70个字符上
def get_char(r,g,b,alpha=256):#alpha透明度 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) #写入文件with open("output.txt",'w') as f: f.write(txt)
4、结果
python实现图片转字符画相关推荐
- 怎样用python生成中文字符画_如何利用Python实现图片转字符画详解
本篇文章主要介绍了Python实现图片转字符画的示例,小编觉得挺不错的,现在分享给大家,也给大家做个参考.一起跟随小编过来看看吧 字符画真的很有意思,将图片中的像素用字符代替,就生成了字符画. 但是像 ...
- 简单使用python将图片转换为字符画
将图片转换为字符码的形式相信大家都有见过. 记得小编以前看到这些的时候是极其羡慕的,也很渴望能够实现这项功能. 然后将一副画转换为这样的字符画,发给周围的朋友炫耀. NH HN–: !;;– –;;; ...
- python动态图片转字符画_GIF动态图,视频?都能用Python转换成字符画图像
字符画是一种由字母.标点或其他字符组成的图画,它产生于互联网时代,在聊天软件中使用较多,本文我们看一下如何将自己喜欢的图片转成字符画. 静态图片 首先,我们来演示将静态图片转为字符画,功能实现主要用到 ...
- python实现图片转字符画_Python实现图片转字符画的示例代码
初学Python,在网上看到Python图片转字符画的教程,我也来尝试下. 首先我们要用到Python的PIL库的Image模块,PIL(Python Imaging Library)库是Python ...
- python动态图片转字符画_Python实现图片转字符画
原博文 2018-05-17 13:18 − 一.任务描述 西普工程师想了解Python的命令行,以达到更好的对Python更深入的认知,打算利用argparse库实现图片转字符画的实验,结合Py ...
- so easy,用 Python 实现图片转字符画
相信大家在网上经常看到有人秀出各种各样的字符画,对于这个五彩斑斓的世界来说,我们日常看到的都是一些高清的彩色的图片,偶尔来个粗糙的黑白的字符画,还是比较解乏的.喜欢记得收藏.关注.点赞. 注:文末提供 ...
- python动态图片转字符画_python 图片在线转字符画预览
关于python图片转字符画,相信大家都不陌生,经常出现在 n个超有趣的python项目中. 今天我也来实践这个有趣的项目,更进一步的是把这个功能做成一个在线的网站,直接上传图片生成字符画,在线预览可 ...
- 用 Python 实现图片转字符画,so easy!
作者 | 派森酱 来源 | Python技术 相信大家在网上经常看到有人秀出各种各样的字符画,对于这个五彩斑斓的世界来说,我们日常看到的都是一些高清的彩色的图片,偶尔来个粗糙的黑白的字符画,还是比较解 ...
- Python 实现 图片转 字符画,静态图、GIF 都能转
源码在python学习交流q群:733089476 获取 字符画是一种由字母.标点或其他字符组成的图画,它产生于互联网时代,在聊天软件中使用较多,本文我们看一下如何将自己喜欢的图片转成字符画. 静态图 ...
- 【003】Python实现图片转字符画(pillow 库的使用)
在常见的RGB(A)模式图片中,利用每个像素点的R,G,B值按照公式转换成灰度值(0~255),然后在自己创建的字符表中找到灰度值对应的字符,添加到一个文本文件中,就实现了图片转字符画(黑白). 但是 ...
最新文章
- Tim Berners-Lee重新分散的新Web SOLID简介
- 跳至下一个断点_基金经理:DeFi将推动以太坊在下一个上涨周期中涨至9000美元...
- python root_python在非root权限下的安装方法
- java的定时器用法
- [jQuery] jQuery.fn的init方法返回的this指的是什么对象?为什么要返回this
- 【LeetCode】分类刷题 之 栈和队列
- android数据库开发案例教程,Android Studio项目开发教程 第6章 数据库编程(30页)-原创力文档...
- cocos2d-x学习之添加显示文字
- Xcode给应用签名的设置
- Php程序监控邮件提醒linux,Linux ping命令实现网络监控 并邮件提醒管理员
- 70个小游戏平台HTML源码
- 360浏览器集成IE8内核
- 微信小程序测试点分类和总结
- Python 批量更改文件名、更改文件格式
- 点云配准ICP算法推导,SVD分解
- c报错pointer being freed was not allocated
- 获取手机mac地址工具类
- 洛谷题解:P1007 独木桥
- qq邮箱下载附件时文件名显示为乱码怎么办。
- godot引擎学习4
热门文章
- 安鑫 十年资产翻十倍 普通人是怎么做到的
- 小学计算机微课教案及ppt,小学数学微课程ppt
- mysql的数据库实例名是啥_数据库名、数据库实例名与数据库域名
- 服务器虚拟网卡驱动卸载,Win10安装和卸载万能网卡版驱动的方法
- 要计算机桌面,科幻再次要成真:你的办公桌面很快也会变成计算机
- “华为杯”山东理工大学第十届ACM程序设计竞赛 - 解题报告
- 如何让一个未知宽高的div垂直居中
- 联想笔记本电脑换掉原装系统后无法进BIOS不完美解决办法
- 【桃园恋歌】mmd镜头+动作打包下载.zip
- 鲁班H5页面生成工具源码