Rumah > Soal Jawab > teks badan
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'
Bagaimana untuk memahami data yang dihantar ke dalam fungsi get_char oleh get_char(*im.getpixel((j,i))), apakah pembolehubah ini dimiliki, dan apakah prinsip operasi fungsi ini
我想大声告诉你2017-06-12 09:28:11
Dalam gelung for, im.getpixel((j,i) merujuk kepada mendapatkan nilai rgb setiap piksel koordinat yang sepadan. Anda boleh mendapatkan nilai koordinat tetap dan kemudian mencetaknya untuk melihat
習慣沉默2017-06-12 09:28:11
Malah, RGB mempunyai sistem teorinya sendiri, yang hanya melaksanakan operasi yang sepadan melalui pengiraan piksel. Secara ringkasnya, untuk memberikan contoh mudah, seperti (255, 255, 255), kita menukar nombor di atas kepada perenambelasan, iaitu FF, FF, FF. Apabila disambung ia menjadi #FFFFF.