Как превратить представление 8-битных цветов в соответствующие цвета python curses?

#python #curses

#python #проклятия

Вопрос:

Я пытаюсь показать изображение с низким разрешением в моем приложении терминала, созданном в python curses. Я получал цвет rgb для каждого пикселя изображения, используя numpy . Я менял каждый пиксель на соответствующий 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))
  

Ответ №1:

Вам нужно будет указать curses, каковы цвета, например, используя init_color это работает только с терминалом, который обрабатывает инициализацию цвета, используя описание терминала, которое имеет initc ). Кроме того, использование значения цвета в качестве парного числа в init_pair , вероятно, не будет работать так, как вы предполагаете.