Как превратить представление 8-битных цветов в соответствующие цвета проклятий питона? - PullRequest
0 голосов
/ 21 апреля 2019

Я пытаюсь показать изображение с низким разрешением в сборке моего терминального приложения в python curses.Я получал RGB-цвет каждого пикселя изображения, используя numpy.Я менял каждый пиксель на соответствующий 8-битный цвет, используя это: color = int((r*6/256)*36 + (g*6/256)*6 + (b*6/256) - 1) и используя color как новый init_pair, все работало хорошо, кроме цветов, они даже не были похожи.Поэтому мой вопрос: есть ли способ превратить представление 8-битного цвета в соответствующий один из 256 цветов проклятий питона?

Есть часть моего кода:

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 Ответ

0 голосов
/ 21 апреля 2019

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

...