如何用Python将图片转为字符画

 更新时间:2023年03月24日 15:19:15   作者:GSGundam  
本文主要介绍了用Python将图片转为黑白字符画的方法,使用ascii字符把图片转为黑白字符画,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

今天打算玩个好玩的,也是基于一个优秀的图像处理库——PIL,使用ascii字符把图片转为黑白字符画。

首先有个问题,就是模拟灰度,这里有个公式:

1
Gray = 0.2126 × R + 0.7152 × G + 0.0722 × B

这样就好办了。当然,RGB模式下,256x256x256的颜色范围虽然被转换成了256的灰度范围,字符还是不好一一对应。我们可以使用一个字符对应多个灰度的方式来解决。

记得要先安装PIL库,其中:

如果是Python 2,运行 pip install PIL

如果是Python 3,运行 pip install pillow

接下来直接上代码吧:

from PIL import Image
#设置显示的字符集
ascii_char = list("$@B%8&WM#*oahkbdpqwmZO0QLCJUYXzcvunxrjft/\|()1{}[]?-_+~<>i!lI;:,\"^`'. ")    
WIDTH = 130
HEIGHT = 50
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 = (255.0 + 1)/length
    return ascii_char[int(gray/unit)]
if __name__ == '__main__':
    img = "E:/WindowsDocuments/G7/Desktop/1.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)

如果想要输出到文件,可以在定义的部分,加上想要保存的文件名 OUTPUT = 'output.txt',然后在最后写进去:

with open(OUTPUT, 'w') as f:
    f.write(txt)

最后,我们得到了这个:

到此这篇关于如何用Python将图片转为字符画的文章就介绍到这了,更多相关用Python将图片转为字符画内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • python中split()函数的用法详解

    python中split()函数的用法详解

    Python join() 方法用于将序列中的元素以指定的字符连接生成一个新的字符串,这篇文章主要介绍了python中split()函数的用法详解,需要的朋友可以参考下
    2023-01-01
  • python命令行交互引导用户输入一个数字实现

    python命令行交互引导用户输入一个数字实现

    这篇文章主要为大家介绍了python命令行交互引导用户输入一个数字实现,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-11-11
  • python使用requests实现发送带文件请求功能

    python使用requests实现发送带文件请求功能

    这篇文章主要介绍了python使用requests实现发送带文件请求,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-12-12
  • Ubuntu16安装CUDA(9.1)和cuDNN的实现步骤(图文)

    Ubuntu16安装CUDA(9.1)和cuDNN的实现步骤(图文)

    本文主要介绍了Ubuntu16安装CUDA(9.1)和cuDNN,文中通过图文介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-07-07
  • pandas groupby 分组取每组的前几行记录方法

    pandas groupby 分组取每组的前几行记录方法

    下面小编就为大家分享一篇pandas groupby 分组取每组的前几行记录方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-04-04
  • Python实现的特征提取操作示例

    Python实现的特征提取操作示例

    这篇文章主要介绍了Python实现的特征提取操作,涉及Python基于sklearn库的变量特征提取相关操作技巧,需要的朋友可以参考下
    2018-12-12
  • 基于Python实现一个简单的敏感词过滤功能

    基于Python实现一个简单的敏感词过滤功能

    这篇文章主要介绍了Python实现敏感词过滤功能的示例,文中通过示例代码介绍的非常详细,对我们学习python有定的帮助,感兴趣的小伙伴们可以参考一下
    2023-06-06
  • Window系统下Python如何安装OpenCV库

    Window系统下Python如何安装OpenCV库

    这篇文章主要介绍了Window系统下Python如何安装OpenCV库,本文分步骤给大家介绍的详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-03-03
  • python实现删除文件与目录的方法

    python实现删除文件与目录的方法

    这篇文章主要介绍了python实现删除文件与目录的方法,详细的分析了涉及Python文件操作的各种方法,需要的朋友可以参考下
    2014-11-11
  • Django项目使用ckeditor详解(不使用admin)

    Django项目使用ckeditor详解(不使用admin)

    今天小编就为大家分享一篇Django项目使用ckeditor详解(不使用admin),具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-12-12

最新评论