python - Bagaimana untuk memahami operasi menukar nilai RGB kepada aksara dalam PIL
高洛峰
高洛峰 2017-06-12 09:26:11
0
2
797
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

高洛峰
高洛峰

拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...

membalas semua(2)
我想大声告诉你

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

習慣沉默

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.

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan