cari

Rumah  >  Soal Jawab  >  teks badan

python - Bagaimana untuk memahami operasi menukar nilai RGB kepada aksara dalam PIL

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

高洛峰高洛峰2725 hari yang lalu770

membalas semua(2)saya akan balas

  • 我想大声告诉你

    我想大声告诉你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

    balas
    0
  • 習慣沉默

    習慣沉默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.

    balas
    0
  • Batalbalas