Maison > Questions et réponses > le corps du texte
ascii_char = list("$@B%8&WM#*oahkbdpqwmZO0QLCJUYXzcvunxrjft/\|()1{}[]?-_+~<>i!lI;:,\"^`'. ")
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 = (256.0 + 1)/length
return ascii_char[int(gray/unit)]
if __name__ == '__main__':
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'
Comment comprendre les données transmises dans la fonction get_char par get_char(*im.getpixel((j,i))), à quelle variable cela appartient-il et quel est le principe de fonctionnement de cette fonction
我想大声告诉你2017-06-12 09:28:11
Dans la boucle for, im.getpixel((j,i) fait référence à l'obtention de la valeur RVB de chaque pixel de coordonnées correspondant. Vous pouvez obtenir la valeur d'une coordonnée fixe, puis l'imprimer pour voir
習慣沉默2017-06-12 09:28:11
En fait, RVB possède son propre système théorique, qui met en œuvre uniquement les opérations correspondantes par le calcul des pixels. Pour faire simple, pour donner un exemple simple, tel que (255, 255, 255), nous convertissons les nombres ci-dessus en hexadécimal, qui sont FF, FF, FF. Une fois épissé, il devient #FFFFF.