字符画效果图,聪明的你肯定猜到原图是什么了
python字符画是一个简单有趣的小程序,非常适合初学者进行学(zhuang)习(bi)。python字符画生成的原理及其简单,一句话概括就是----将图片像素点用不同字符代替,从而将像素组成的图片转变成用字符组成的字符画。为了尽可能的使得字符画展示效果与图片相同。灰度值高的像素我们使用视觉上较深的字符表示(如$),灰度值较低的像素我们使用视觉上较浅的字符表示(如.)
字符视觉排列
我们选择一些字符,从视觉上的深浅将他们人工排序。
字符视觉排序
我们可以看到list中左边的字符视觉上较深,右边的字符视觉上较浅。
在这里我还是要推荐下我自己建的Python开发学习群:589306326,都是学Python开发的,如果你正在学习Python ,小编欢迎你加入,今天分享的这个案例已经上传到群文件,大家都是软件开发党,不定期分享干货(只有Python软件开发相关的),包括我自己整理的一份最新的Python零基础资料和Python进阶教程,欢迎进加入
打开图片,调整大小
打开我们需要转化的图片,并将图片调整为我们所指定的宽和高(字符画的宽和高)
我们使用PIL来进行图片操作
使用PIL模块的open方法打开一张图片,使用resize方法将图片调整到宽为WIDTH,高为HEIGHT的大小。
像素转化为字符
定义一个方法get_char,这个方法输入一个像素点的r,b,g然后输出对应的字符。
get_char方法
方法中使用int(0.2126*r+0.7152*g+0.0722*b)将r,b,g转化为灰度值,然后根据灰度值的大小确定所选字符在ascii_char中的位置。
我们只需要遍历图片中的每一个像素,依次调用get_char方法即可得到每一个像素对应的字符,然后将这些字符组合起来即可得到所需的字符画了。
全部源码如下:
全部源码
欢迎大家留言讨论!