Как получить серый цвет на экране 128х128
- Войдите на сайт для отправки комментариев
Вс, 09/12/2018 - 09:34
Использую библиотеки: Adafruit_GFX.h Adafruit_ST7735.h, в библиотеке есть настроенные цвета -
// Color definitions
#define Black 0x0000
#define Blue 0x001F
#define Red 0xF800
#define Green 0x07E0
#define Cyan 0x07FF
#define Magenta 0xF81F
#define Yellow 0xFFE0
#define While 0xFFFF
но мне надо серый, светло-серый, и темно-серый, а ещё - темно-синий, и светло-голубой. Полдня сижу, не могу понять, как цвета формируются. Как сделать цвет темнее или светлее, не меняя его тон?
5 бит красный 6 бит зеленый, 5 бит синий. Примерно так
struct Color_t {
uint8_t Blue: 5;
uint8_t Green:6;
uint8_t Red:5;
}
0xF800/2 + 0x07E0/2 + 0x001F/2 = не серый, а как получить серый?
Понял как, FFFF-> 65535, отнимаем кратное 8 (8, 16. .. 256, ... 512) и получаем цвет с уменьшенной яркостью, если к белому, то градацию серого. Всего 10 градаций каждного цвета.
Всего 10 градаций каждного цвета.
про "всего 10 градаций" - бред какой то...
Берете нужный RGB цвет и конвертируете в RGB565 - в библиотеке ADAfruit даже готовая функция есть
а кроме того, в любой библиотеке куча уже готовых цветов, например
начни с 0xFFFF - это белый. Потом красную и синюю составляющую уменьшай на 1, а зеленую - на 2, и выводи. Так все серые аттенки пройдешь, от белого до чёрнаго.
начни с 0xFFFF - это белый. Потом красную и синюю составляющую уменьшай на 1, а зеленую - на 2, и выводи. Так все серые аттенки пройдешь, от белого до чёрнаго.
получицца, кстати , 32 градации... а вовсе не 10
в библиотеке ADAfruit даже готовая функция есть
В моей не было, спасибо вам - теперь есть, прекрасно работает.
получицца, кстати , 32 градации... а вовсе не 10