神奇!几行代码就能轻松把图片转为字符图

2020-02-23 23:26:34

码神镇楼

准备阶段

首先需要安装一个Python的图形处理库。终端直接输入:

brew install Pillow

实现阶段

不多说,直接上打码。

from PIL import Image  # 导入Pillow的Image模块IMG = "/Users/##########/avart.jpg"                 # 需要处理掉的图片路径filePath = "/##############/avart.txt"              # 处理结果的保存路径ascii_char = list("$@B%8&WM#*oahkbdpqwmZO0QLCJUYXzcvunxrjft/\|()1{}[]?-_+~<>i!lI;:,\"^`'. ")height = 45width = 100# 重点。将256灰度映射到70个字符上def get_char(r, g, b, alpha=256):
    if alpha == 0:
        return ' '
    length = len(ascii_char)
    gray = int(0.2126 * r + 0.7152 * g + 0.0722 * b)  # 灰度转换公式,🉑以自己

    unit = (256.0 + 1) / length                       # 比例
    inext = int(gray / unit)                          # 根据灰度求对应的index
    return ascii_char[inext]if __name__ == '__main__':

    im = Image.open(IMG)                              # 读取图片
    im = im.resize((width, height), Image.NEAREST)    # 调整图片的大小

    txt = ""
    for i in range(height):                           # 遍历图片的像素点,获取每一个像素点的rgbA值
        for j in range(width):
            txt += get_char(*im.getpixel((j, i)))     # 获得相应位置像素点的值组元(a,g,b,a)
        txt += '\n'                                   # 换行

    print txt    # 字符图输出到文件
    with open(filePath, 'w') as f:                    # 输出到指定文件
        f.write(txt)

好了,就是这么一点码。很简单吧。
下面看看效果图:

源图


效果图

觉得还不错的话,就拜托点个赞,加个关注哦!😊



  • 2020-04-14 15:35:52

    caniuse前端兼容性检查和使用

    相信大家都曾用caniuse网站查询过css、js的一些兼容性问题,并且都从它反馈的兼容性数据中获益,让我们的线上项目更加稳定、和谐的跑在用户电脑里。不过对于caniuse页面上的一些细节,我们可能会感到困惑或者模棱两可,今天就带着大家一起来重新认识caniuse这个网站,并对它的原理和细节做些探究。

  • 2020-04-15 17:00:07

    export和import的理解,这一篇问扎根就够了

    在 ES6 之前,社区制定了一些模块加载方案,最主要的有 CommonJS 和 AMD 两种。前者用于服务器,后者用于浏览器。ES6 在语言标准的层面上,实现了模块功能,而且实现得相当简单,完全可以取代 CommonJS 和 AMD 规范,成为浏览器和服务器通用的模块解决方案。

  • 2020-04-15 21:14:13

    .d.ts与.ts的区别 .d.ts怎么用

    在TypeScript项目中直接引入Javascript包是不能使用的,因为包中缺少TypeScript类型声明,如果是自己写的包,可以考虑自己增加一个.d.ts类型声明文件,如果代码比较多或者使用的是第三方的包,自己写就比较麻烦了。第三方的包首先考虑找一个别人写好的声明文件,如果没有可以使用一些自动生成声明文件的工具。

  • 2020-04-17 09:27:38

    推荐一个老前端开发者的博客

    前端修炼场,首页标签大全greenSock前端研究VUE研究我们的作品flash技术探讨开发心得个人档案培训与招聘服务报价

  • 2020-04-17 09:41:47

    前端css博客推荐

    这个博客有大量的css内容,有svg,TweenMax等教程,抽空通读一下