字符画是一系列字符的组合,我们可以把字符看作是比较大块的像素,一个字符能表现一种颜色(暂且这么理解吧),字符的种类越多,可以表现的颜色也越多,图片也会更有层次感。

灰度值:指黑白图像中点的颜色深度,范围一般从0到255,白色为255,黑色为0,故黑白图片也称灰度图像

创建一个不重复的字符列表,灰度值小(暗)的用列表开头的符号,灰度值大(亮)的用列表末尾的符号。

代码带详细注释

from PIL import Image # PIL 是一个 Python 图像处理库ascii_char=list("$@B%8&WM#*oahkbdpqwmZO0QLCJUYXzcvunxrjft/\|()1{}[]?-_+~<>i!lI;:,\"^`'. ")
# 是我们的字符画所使用的字符集,一共有 70 个字符,字符的种类与数量可以自己根据字符画的效果反复调试的WIDTH = 60 # 字符画的宽
HEIGHT = 45 # 字符画的高# 将256灰度映射到70个字符上,也就是RGB值转字符的函数:
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) / lengthreturn ascii_char[int(gray / unit)]  # 不同的灰度对应着不同的字符# 通过灰度来区分色块if __name__ == '__main__':img = 'C:/Users/lec/Desktop/ascii_dora.png' # 图片所在位置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("C:/Users/lec/Desktop/output.txt", 'w') as f:f.write(txt)

Python 图片转简单字符画相关推荐

  1. python turtle画彩虹的代码_Python使用turtle绘制国旗,Python图片转换位字符画

    这篇文章主要是整合一些趣味代码,一方面自己对这些内容比较感兴趣,另一方面希望这些代码能提升大家的编程兴趣. 一.Python使用turtle绘制国旗 代码如下: 运行结果如下所示,它是动态绘制过程. ...

  2. Python图片转html字符画

    GitHub上有个很有意思的项目,这个项目就是将一张图片转换成一个网页,例如这张蒙娜丽莎的微笑转换成网页之后的效果对比: image 左边是原图,右边是网页的效果,网页其实是由文字"爱&qu ...

  3. canvas全局合成画月牙_教你用Python将自己喜欢的图片转成字符画,居然还有动态的 - 松鼠爱吃饼干...

    本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理 以下文章一级Python技术 ,作者派森酱 前言 字符画是一种由字母,标点或其他字 ...

  4. 教你用Python将图片转化为字符画!附源代码

    点击上方 "程序员小乐"关注公众号, 星标或置顶一起成长 每天早上8点20分, 第一时间与你相约 每日英文 Whatever you are facing today, remem ...

  5. python动态图片转字符画_python 图片在线转字符画预览

    关于python图片转字符画,相信大家都不陌生,经常出现在 n个超有趣的python项目中. 今天我也来实践这个有趣的项目,更进一步的是把这个功能做成一个在线的网站,直接上传图片生成字符画,在线预览可 ...

  6. python动态图片转字符画_使用python实现一个将图片转换成字符画的功能

    使用python实现一个将图片转换成字符画的功能 发布时间:2020-11-05 16:01:25 来源:亿速云 阅读:97 使用python实现一个将图片转换成字符画的功能?针对这个问题,这篇文章详 ...

  7. python将图片转为字符_Python将图片转化为字符画

    简介 最近发现一个有趣的操作, 将一张图片转化为字符串的模式来显示! 如图 准备 首先需要安装一个CV模块用来导入图片的#pip install opencv-python 然后明确下程序的设计思路1 ...

  8. 将普通图片转化为字符画(Python)

    1.设计思路 如何把以.png的图片以不同字符把它形象的画出来呢? 我们知道其实一张图片是由很多不同像素点所组成的,每种像素点可以表示一种颜色.那么如果我们用不同的字符来代替各种像素点,是不是就可以将 ...

  9. c语言将一幅画转换为字符画,C#将图片转换成字符画

    先看一下效果图 在Main方法中调用(首先要添加程序集System.Drawing,然后引入命名空间System.Drawing) ConvertToChar(new Bitmap(@"D: ...

最新文章

  1. node sqlite 插入数据_安卓手机中的应用数据都保存在哪些文件中?
  2. Matlab与线性代数 -- 方阵的行列式
  3. 未来50年的神经科学会是什么样呢?
  4. 【Android 多媒体开发】 MediaPlayer 状态机 接口 方法 解析
  5. Redis在Windows上编译
  6. 单调有界数列一定有极限
  7. bootstrap学习笔记(一)网络系统
  8. html 旋转木马 轮播,JS实现旋转木马式图片轮播效果
  9. html a div,为div设置类a与b,应编写HTML代码(??)
  10. html%3c arial%3e,【博客园】样式美化+网站统计访问+添加网易云背景音乐
  11. python手机版-QPython,一个在手机上运行Python的神器
  12. 微信小程序图片上传并预览
  13. windows10 快捷代码
  14. java math 三角函数_Java Math类的常用方法,三角函数运算
  15. 井下三专两闭锁的内容_三专两闭锁
  16. 1-2 CSS常用样式笔记
  17. mongoDB 高级查询(一)
  18. 三四十岁的大龄程序员,到底该怎么做才能避免失业?
  19. Python plot() 画图标记 marker
  20. 怎么快速无损地把avi转换mov格式?简单3步就能搞定!

热门文章

  1. bbb sdk6编译流程
  2. am335x otg-usb
  3. Linux操作系统内核启动参数详细解析
  4. python requests https_解决python的requests模块访问私有SSL证书产生的报错问题
  5. java注解中可使用对象_Java注解(二):实战 - 直接使用对象列表生成报表...
  6. 机器学习复制粘贴笔记要点
  7. arcgis字段计算器利用python按两列要求编号
  8. LSGO软件技术团队内部技术交流【2015-2016(1)第七周】
  9. 【转】日志记录库(log4cxx)使用指南
  10. 【转】ABP源码分析十八:UI Inputs