字符画

字符画

首先献上代码(网上找的,如果侵权联系我删除

#coding:utf-8
from PIL import Image
#要索引的字符列表
ascii_char = list("$@B%8&WM#*oahkbdpqwmZO0QLCJUYXzcvunxrjft/\|()1{}[]?-_+~<>i!lI;:,\"^`'. ")
length = len(ascii_char)
img = Image.open('123.png')      #读取图像文件
(width,height) = img.size
img = img.resize((int(width*0.5),int(height*0.2)))  #对图像进行一定缩小,图片的大小可以根据上传图片的大小来按需调节,
print(img.size)
def convert(img):
    img = img.convert("L")  # 转为灰度图像
    txt = ""
    for i in range(img.size[1]):
        for j in range(img.size[0]):
            gray = img.getpixel((j, i))     # 获取每个坐标像素点的灰度
            unit = 256.0 / length
            txt += ascii_char[int(gray / unit)] #获取对应坐标的字符值
        txt += '\n'
    return  txt
def convert1(img):
    txt = ""
    for i in range(img.size[1]):
        for j in range(img.size[0]):
            r,g,b = img.getpixel((j, i))           #获取每个坐标像素点的rgb值
            gray = int(r * 0.299 + g * 0.587 + b * 0.114)   #通过灰度转换公式获取灰度
            unit = (256.0+1)/length
            txt += ascii_char[int(gray / unit)]  # 获取对应坐标的字符值
        txt += '\n'
    return txt
txt = convert(img)
f = open("03_convert.txt","w")
f.write(txt)            #存储到文件中
f.close()
需要python3环境
将代码复制,并保存为 zifuhua.py
img = Image.open(‘123.png’) #读取图像文件
123.png 是我图片的名字,需要改为自己当前文件夹下的图片名字。
f = open(“03_convert.txt”,”w”)
03_convert.txt 是输入文件的名字,也可以自定义
img = img.resize((int(width0.5),int(height0.2))) 对图像进行一定缩小,图片的大小可以根据上传图片的大小来按需调节

tips

  • 将图像对比度调高
  • 最好没有背景
  • 如果比例不合适,可以调整第8行的0.5和0.2这两个参数
  • 可用linux的tr命令可以将背景字符替换为空格
  • 怎么在python,我不会

赶快去尝试一下吧

暂无评论

发送评论 编辑评论


				
上一篇
下一篇