Same old rule. Renderings first
The theory is very simple, is the image operation, here needs to use PIL Python package, which has very good image processing function.
First open the image and resize it.
img = Image.open(picPath)
img = img.resize((picW, picH))
Copy the code
Then read the gray value, and then the gray value and character correspond to the line.
from PIL import Image
lstChars = list("$@B%8&WM#*oahkbdpqwmZO0QLaCJUYXzczjhdhsdavunxrjft/\|()1{}[]? -_+~<>i! lI; :, \ "^ ` '.")
def oneChars(r, g, b, alpha = 256) :
global lstChars
length = len(lstChars)
gray = int(0.2126 * r + 0.7152 * g + 0.722 * b)
index =length*gray
return lstChars[index]
picPath = "C:\Users\Administrator\Desktop\\aaaaa\\aa.png"
picH = 40
picW = 80
img = Image.open(picPath)
img = img.resize((picW, picH))
txt = ""
for y in range(picH):
for x in range(picW):
txt += oneChars(img.getpixel((x, y)))
txt += '\n'
print txt
Copy the code
If you have any ideas, please leave a message.