服务器之家

服务器之家 > 正文

python实现图片转字符画的完整代码

时间:2021-09-07 00:35     来源/作者:FlyeWong

前言

最初是在实验楼看到的一个小实验

实验楼-python 图片转字符画

原文是需要通过命令行运行程序

这里改为直接运行,需要固定一些参数

运行平台: windows

python版本: python3.6

ide: sublime text

1、实验准备

pillow库的安装

?
1
pip install pillow

2、实验原理

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

最终显示的是黑白色的字符画,那么彩色的图片怎么转换成黑白的呢?这里就需要了解灰度值的概念了。

<span style="font-size:16px;">灰度值:指黑白图像中点的颜色深度,范围一般从0到255,白色为255,黑色为0,故黑白图片也称灰度图像。</span>

我们利用下面的公式将像素的rgb值转换成灰度值:

<span style="color:#ff0000;">gray = 0.2126 * r + 0.7152 * g + 0.0722 * b</span>

用不同的字符代表不同的灰度值,字符的种类和数量可以根据自己需要的效果进行调整,最好从前往后可以看到明显的变化,最后一个字符为空格符最佳:

ascii_char = list("$@b%8&wm#*oahkbdpqwmzo0qlcjuyxzcvunxrjft/\|()1{}[]?-_+~<>i!li;:,\"^`'. ")

3、完整代码

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
#-*- 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图片转字符画内容请搜索服务器之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持服务器之家!

原文链接:https://blog.csdn.net/qq_20464153/article/details/79777823

标签:

相关文章

热门资讯

yue是什么意思 网络流行语yue了是什么梗
yue是什么意思 网络流行语yue了是什么梗 2020-10-11
2020微信伤感网名听哭了 让对方看到心疼的伤感网名大全
2020微信伤感网名听哭了 让对方看到心疼的伤感网名大全 2019-12-26
背刺什么意思 网络词语背刺是什么梗
背刺什么意思 网络词语背刺是什么梗 2020-05-22
苹果12mini价格表官网报价 iPhone12mini全版本价格汇总
苹果12mini价格表官网报价 iPhone12mini全版本价格汇总 2020-11-13
2021年耽改剧名单 2021要播出的59部耽改剧列表
2021年耽改剧名单 2021要播出的59部耽改剧列表 2021-03-05
返回顶部