如何将8位颜色的表示转换为相应的python curses颜色?

问题描述 投票:0回答:1

我试图在我的终端应用程序构建python curses中显示低分辨率图像。我使用numpy获得图像的每个像素的rgb颜色。我正在使用这个改变每个像素到相应的8位颜色:color = int((r*6/256)*36 + (g*6/256)*6 + (b*6/256) - 1)并使用color作为新的init_pair,除了颜色之外,一切都运行正常,它们甚至都不相似。所以我的问题是:有没有办法将8位颜色的表示转换为256个python curses颜色中相应的一个?

我的部分代码是:

def show_image(h, w, img_arr, window):
    for y in range(h):
        for x in range(w):
            pix = img_arr[y][x]
            color = int((pix[0]*6/256)*36 + (pix[1]*6/256)*6 + (pix[2]*6/256) - 1)
            curses.init_pair(color, color, color)
            window.addstr(10+y, x+1, "#", curses.color_pair(color))
python curses
1个回答
0
投票

您必须告诉curses颜色是什么,例如,使用init_color(并且只适用于处理颜色初始化的终端,使用具有initc的终端描述)。此外,使用颜色值作为init_pair中的对号可能不会按预期工作。

© www.soinside.com 2019 - 2024. All rights reserved.