Python轻松实现字符画

字符画怎么弄的?

环境:pycharm,python3.0+

库:pillow

安装库:python2下是pip install PIL 就行了,python3是pip install pillow

其实,pillow本来就是PIL派生的分支,只不过因为它越发完善,甚至,适用性已经超过了PIL,所以现在都是用pillow了。PIL只支持到python2.7而已,以上版本就不行咯!

废话不多说,直接上代码:
from PIL import Image
#导入PIL库 命令行下pip install pillow
#为什么不是pip install PIL 呢?
#因为PIL是只支持到python2.7,pillow是PIL派生的但是现在已经适用性超过PIL了。
def get_text(img):
    img=img.convert("L")  # 转换为黑白图片,参数"L"表示黑白模式
    charlist=''
    for h in range(0,img.size[1]):  # size属性表示图片的分辨率,'0'为横向大小,'1'为纵向
        for w in range(0, img.size[0]):
            gray=img.getpixel((w,h))  # 返回指定位置的像素,如果所打开的图像是多层次的图片,那这个方法就返回一个元组
            pos=gray/256
            charlist=charlist + codelist[int((count-1)*pos)]  #建立灰度与字符集的映射
        charlist=charlist+'\r'
    return charlist

def getImage():
    file=open('./4.jpg','rb')
    img=Image.open(file)
    return img
def trantxt():
    outfile=open('tmp.txt','w')
    outfile.write(get_text(img))
    outfile.close()

if __name__=='__main__':
    img=getImage()
    width,height=img.size[0],img.size[1]
    # 生成字符画所需的字符集
    codelist='$@B%8&WM#*oahkbdpqwmZO0QLCJUYXzcvunxrjft/|()1{}[]?-_+~<>i!lI;:,".^`\' '
    count=len(codelist)
    scale=width/height
    img=img.resize((int(width*0.15),int(width*0.05/scale))) #调整图片大小
    trantxt()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值