利用Python制作将位图转换为字符画的程序

功能

输入位图的路径和合适的长宽,生成一个对应的字符画文本文件。

代码

# -*- coding: utf-8 -*-
from PIL import Image
asciichar = list('█▓▒░※∷@#$□*|!-…· ') #分别对应由深到浅的字符


def getchar(r, g, b, alpha=256): #R、G、B、通道和Alpha值
    if alpha == 0:
        return ' '
    gray = int(0.2126*r+0.7152*g+0.0722*b) #灰度转换公式
    unit = 256/len(asciichar)
    return asciichar[int(gray/unit)]


def main():
    print("{0:-^30}".format('图片转字符画'))
    im = Image.open(input("请输入文件路径:"))
    width = int(input('请输入宽度:'))
    height = int(input('请输入长度:'))
    im = im.resize((width, height))
    txt = ""
    for i in range(height):
        for j in range(width):
            txt += getchar(*im.getpixel((j, i)))
        txt += '\n'
    fo = open(input("请输入文件保存路径:"), "w", encoding='utf-8')
    fo.write(txt)
    fo.close()


main()

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值