Color API - ProfessorCrown/WIKI-RUSSIA GitHub Wiki


Эта библиотека предназначена для цветовых манипуляций. Он позволяет вам вытягивать и упаковывать цветовые каналы, конвертировать цветовую модель RGB в HSB и наоборот, выполнять Альфа-смешивание, генерировать переходы цвета и конвертировать цвет в 8-битный формат для палитры OpenComputers.

Содержание

Канал цветов

color.RGBToInteger
color.integerToRGB

Смешивание цветов

color.blend
color.transition

Преобразование цветовых моделей

color.RGBToHSB
color.HSBToRGB

Сжатие цветов

color.to8Bit
color.to24Bit

Канал цветов

color.RGBToInteger(8-bit int red, 8-bit int green, 8-bit int blue): 24-bit int result

Пакует три цветовых канала и возвращает 24-битный цвет:

color.RGBToInteger(0xFF, 0x00, 0xFF)
> 0xFF00FF

color.integerToRGB(24-bit int color): 8-bit int red, 8-bit int green, 8-bit int blue

Вытягивает три цветовых канала из 24-битного цвета:

color.integerToRGB(0xFF00FF)
> 255, 0, 255

Смешивание цветов

color.blend( 24-bit int firstColor, 24-bit int secondColor, float [0.0; 1.0] secondColorTransparency): 24-bit int result

Смешивает два цвета, учитывая прозрачность второго цвета. Например, если вы выполняете эту операцию на цветах 0xFF0000 (красный) и 0x000000 (черный) с 0,5 прозрачности второго, то результат будет 0x7F0000 (темно-красный):

color.blend(0xFF0000, 0x000000, 0.5)
> 0x7F0000

color.transition( 24-bit int firstColor, 24-bit int secondColor, float [0.0; 1.0]]): 24-bit int transitionColor

Генерирует переходный цвет между первым и вторым цветами, основываясь на аргументе перехода, где значение 0.0 эквивалентно первому цвету, а 1.0-второму цвету. Например, если выполнить эту операцию для цветов 0x000000 (черный) и 0xFFFFFF (белый) с положением перехода равным 0.5, то результатом будет 0x7F7F7F (серый):

color.transition(0x000000, 0xFFFFFF, 0.5)
> 0x7F7F7F

Преобразование цветовых моделей

color.RGBToHSB(8-bit int red, 8-bit int green, 8-bit int blue): int [0; 360] hue, float [0.0; 1.0] saturation, float [0.0; 1.0] brightness

Преобразует три цветовых канала цветовой модели RGB в цветовую модель HSB и возвращает соответствующий результат:

color.RGBToHSB(0xFF, 0x00, 0x00)
> 360, 1.0, 1.0

Для удобства есть также способ color.integerToHSB(24-bit int value): int [0; 360] hue, float [0.0; 1.0] saturation, float [0.0; 1.0] brightness

color.HSBToRGB(int [0; 360]* hue, float [0.0; 1.0] saturation, float [0.0; 1.0] brightness): 8-bit int red, 8-bit int green, 8-bit int blue

Преобразует параметры цветовой модели HSB в три цветовых канала модели RGB и возвращает соответствующий результат:

color.HSBToRGB(360, 1.0, 1.0)
> 0xFF, 0xFF, 0xFF

Для удобства есть также способ color.HSBToInteger(int [0; 360]* hue, float [0.0; 1.0] saturation, float [0.0; 1.0] brightness): 24-bit int value


Сжатие цветов

color.to8Bit(24-bit int value): 8-bit int value

Ищет палитру OpenComputers 256 цветов и возвращает индекс цвета, который наиболее точно соответствует заданному значению, используя тот же метод поиска, что и в gpu.setBackground (значение) do. Возвращаемый 8-битный результат очень полезен для записи в двоичный файл, что позволяет сэкономить дополнительное место на жестком диске. Обратите внимание, что метод довольно медленный, и не подходит для рисования графики на экране в режиме реального времени.

color.to24Bit( 8-bit int value): 24-bit int value

Метод позволяет преобразовать 8-битный индекс, созданный color.to 8-битный метод для 24-битного значения цвета. Эта операция почти мгновенна по сравнению с предыдущим методом.

⚠️ **GitHub.com Fallback** ⚠️