原理
每张图片都是由一个个像素组成的,之所以可以看到五颜六色的图片,是因为有红绿蓝三原色,它们可以组合成无数种颜色,而我们常见的显示器用的就是 RGB 的颜色标准,不同的 RGB 值代表不同的颜色强度,这个值在 0 到 255 之间。
我们想要让图片使用字符替换,并不需要那么多颜色,所以我们可以把图片转化为灰度图像,这样它就只剩下强度不同的黑与白了,这时候,我们只需要通过颜色的灰度值去区分就可以得到需要替换字符的地方。
因为灰度图像只是黑白强度不同,所以我们并不需要细致到每一个具体的数值,可以把 0 ----> 255 拆分一下,比如每 25 个灰度值代表一种强度。
我们可以在这每个区间里定义一个字符,这时候只要判断像素的灰度值,看看这个值在什么区间,对应替换相应的字符就可以了。
代码实现
import sys
from PIL import Image
chars = ['&', '-', '+', '*',