Python3,为了给女神暗送秋波,我默默的写了一个图片字符画生成器,真香。
图片字符画制作
- 1、引言
- 2、代码实战
- 2.1 原理
- 2.2 实例
- 3、总结
1、引言
小屌丝:鱼哥,给你看个照片。
小鱼:什么…照片…首先声明,我可是正经人。
小屌丝:你先看看.
小鱼:就这,有啥好看的,我还以为…
小屌丝:对啊,就是这个啊,最近很流行的这种字符画。
小鱼:噢。
小屌丝:鱼哥,是不是感觉被时代丢弃了,已经无法跟随我们00后的脚步了。
小屌丝:我才不信。
小鱼:这有啥难度,把每个字符看成是一个像素,一个字符可以是一种颜色,字符的种类多了,颜色看起来就鲜艳了。
小屌丝:既然这样,那你就给我整一个呗。
小鱼:图片拿来。
2、代码实战
2.1 原理
关于图片转换字符画的原理,
在上面小鱼也说过了,
把每个字符看成是一个像素,一个字符可以是一种颜色,字符的种类多了,颜色看起来就鲜艳了。
由于小鱼的多篇博文,都提到了像素的概念, 在这里就不唠叨了
如果还有哪位大佬没记住的,可以参照小鱼的这几篇博文
- 《Python3,19行代码,我把她的照片写入到Excel中,2022年伊始,她终于被我感动了。》
- 《Python3,10行代码,我把情书写在她的照片里,她被我的才华征服了。》
- 《Python3,4行代码给图片加美颜,拍照再也不需要开美颜滤镜了。》
这里说一点:
灰度值的转换公式
gray = (2126 * r + 7152 * g + 722 * b) / 10000
2.2 实例
代码示例
# -*- coding:utf-8 -*-
# @Time : 2022-06-26
# @Author : carl_DJfrom PIL import Image#设置字符集
char = list('M3NB6Q#OC?7>!:–;. ')#设置色值
def get_char(r,g,b,alpha=256):if alpha == 0:return ' '#灰度值转换公式grey = (2126 * r + 7152 * g + 722 *b) /10000char_idx = int((grey / (alpha + 1.0)) * len(char))return char[char_idx]#图片像素值写入文件
def write_file(out_file_name,content):with open(out_file_name,'w') as f :f.write(content)#设置图片的宽、高、输出文件名称等信息
def main(file_name = "input.jpg",width=100,height=80,out_file_name='output.txt'):text = ''im = Image.open(file_name)im = im.resize((width,height),Image.NEAREST)#循环遍历图片的宽和高for i in range(height):for j in range(width):text += get_char(*im.getpixel((j,i)))text += '\n'print(f'{text}')write_file(out_file_name,text)if __name__ == '__main__':main('xiaowu.png')
运行结果
敲黑板:
- 我们可以在控制台直接看输出结果;
- 也可以在生产的output.txt文件看输出的结果;
3、总结
写到这里,今天的分享就差不多结束了。
关于PIL库,在小鱼的博文中写的很多次,
我们再熟悉不过了。
所以,在这里就不再过多的唠叨了。
最后,
关注小鱼博客,带你学习更多关于python第三方库的知识。
Python3,为了给女神暗送秋波,我默默的写了一个图片字符画生成器,真香。相关推荐
- python3多线程第三方库_Python之多线程爬虫抓取网页图片的示例代码
目标 嗯,我们知道搜索或浏览网站时会有很多精美.漂亮的图片. 我们下载的时候,得鼠标一个个下载,而且还翻页. 那么,有没有一种方法,可以使用非人工方式自动识别并下载图片.美美哒. 那么请使用pytho ...
- mysql5.7循环,python3.4用循环往mysql5.7中写数据并输出的实现方法
python3.4用循环往mysql5.7中写数据并输出的实现方法 来源:中文源码网 浏览: 次 日期:2018年9月2日 python3.4用循环往mysql5.7中写数据并输出的实现方 ...
- Python3,2行代码添加水印,发朋友圈,图片再也不怕被盗了!!!
2行代码添加水印 1.引言 2.filestools介绍 2.1 安装 2.2 filestools 功能介绍 2.3 watermarker模块介绍 2.3 代码实例 1.引言 小屌丝:鱼哥,这个周 ...
- 猿创征文|Python3,10分钟写了一个WIFI 万(破) 能 (解) 钥 (神) 匙 (器),YYDS。
wifi万能钥匙 1.引言 2.代码实战 2.1 思路 2.2 模块安装 2.3 代码实战 2.3.1 生成密码本 2.3.2 破解实战 3.总结 1.引言 小鱼:小屌丝,你家WIFI密码是多少? 小 ...
- Python3 + wxpython写的一个翻译工具
Python3 + wxpython写的一个翻译工具 学习日语一直有一个问题,有些时候我们看到一句话,可能大致上能猜出来是什么意思,但是日语汉字却不知道怎么去读.我就有这样的烦恼,极大的降低了我对日语 ...
- 为了帮女神完成钢琴家梦想,我用Python写了一个自动弹钢琴脚本,轻松弹奏出各种钢琴曲!
事情是这样的,女神马上要毕业了,前两天跟我彻夜长谈,还说自己一直有个钢琴家的梦想. 这不为了帮女神圆梦,在我经过一番苦思冥想之后,终于用Python写了一个自动弹钢琴脚本,不会钢琴的都能成为钢琴家. ...
- python3 转码的函数_python基础3之文件操作、字符编码解码、函数介绍
内容概要: 一.文件操作 二.字符编码解码 三.函数介绍 一.文件操作 文件操作流程: 打开文件,得到文件句柄并赋值给一个变量 通过句柄对文件进行操作 关闭文件 基本操作: 1 #/usr/bin/e ...
- python3.4用循环往mysql5.7中写数据并输出
#!/usr/bin/env python # -*- coding:utf-8 -*- # __author__ = "blzhu" """ pyt ...
- wordcloud python3.7_[原创]win7/64位系统+python3.7.2下安装wordcloud库失败之解决——一个莫名其妙的方法...
当前环境: win7/64位系统 python3.7.2 pip-19.2.1 使用pip install wordcould安装时出现错误,提示: 尝试方法①:考虑更换其他安装源 提示没有变化,仍然 ...
最新文章
- DrugBank:小分子数据信息挖掘
- XHTML学习资料(四)—— 图像
- 设置socket IP_TOS选项 (转载)
- windows应用程序框架及实例
- php简单文件上传类
- java之解析DNS的SRV记录
- Codeforces Round #746 (Div. 2)
- koa2 中使用 svg-captcha 生成验证码
- 【产品对比】Word开发工具Aspose.Words和Spire.Doc性能和优劣对比一览
- 全球首发!计算机视觉Polygon Mesh Processing读书笔记——5微分几何中的弧长
- ajax实现评论区功能,Ajax实现评论中顶和踩功能的实例代码
- java服务器向客户端发消息_socket 服务器向指定的客户端发消息
- 中小银行传统数据仓库向大数据平台迁移探索
- [蓝桥杯] 扩散 (Python 实现)
- 电磁流量计流速信号特征
- dejavu中如何添加html文件,如何使用iText和Flying Saucer在HTML中创建PDF格式的字体? | 所有编程讨论 | zhouni.net...
- 分贝测试软件哪个好 家庭影院,家庭影院隔音怎么做效果最好 这7个解决方案你一定要知道...
- 中医药与计算机论文,中医药论文参考文献
- 合并石子(三种方法)
- Navicat for MySQL的使用