2

Как инвертировать цвета экрана по значению?

Наиболее распространенный способ инвертировать цвета - использовать RGB-отрицание. К сожалению, это не очень красиво: синий становится желтым, зеленый становится пурпурным и т.д.

То, что я хочу, это инвертировать value , один из компонентов среди hue и saturation . Таким образом, темные цвета станут светлыми, свет станет темным, но синий все равно останется голубоватым.

Пример вывода (созданный с помощью GIMP, не работает на весь экран):

ориг => Значение инвертированной

Цель состоит в том, чтобы перевернуть весь экран, чтобы вы могли читать PDF-файлы, Firefox, мгновенные сообщения - все в темных тонах.

2 ответа2

1

Существует решение, включающее композиторы на основе OpenGL (например, compton) и шейдер на заказ (* .glsl).

Вот наблюдение за техникой вместе с файлом шейдера: https://github.com/vn971/linux-color-inversion

0

Вы можете использовать инструмент ImageMagick с опцией цветовой матрицы:

Этот параметр позволяет изменять насыщенность, вращение оттенка, яркость в альфа-канал и другие эффекты. Хотя могут использоваться матрицы преобразования переменного размера, обычно используется матрица 5x5 для изображения RGBA и 6x6 для CMYKA (или RGBA со смещениями). Матрица аналогична тем, что используются в Adobe Flash, за исключением того, что смещения указаны в столбце 6, а не 5 (для поддержки изображений CMYKA), а смещения нормализованы (разделите смещение Flash на 255).

Например, чтобы добавить контраст к изображению со смещением, попробуйте следующую команду:

convert kittens.jpg -color-matrix \
    " 1.5 0.0 0.0 0.0, 0.0, -0.157 \
     0.0 1.5 0.0 0.0, 0.0, -0.157 \
     0.0 0.0 1.5 0.0, 0.0, -0.157 \
     0.0 0.0 0.0 1.0, 0.0,  0.0 \
     0.0 0.0 0.0 0.0, 1.0,  0.0 \
     0.0 0.0 0.0 0.0, 0.0,  1.0" kittens.png

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .