Используйте QColorDialog для возврата значения RGB565

Я хочу вернуть значение RGB565, когда пользователь выбирает цвет из QColorDialog. Я попытался использовать метод преобразования, описанный на веб-сайте средства выбора цвета RGB565, но результат моего кода не представляет то же значение в шестнадцатеричном формате:

QColor color = QColorDialog::getColor();

uint8_t red = color.red();
uint8_t green = color.green();
uint8_t blue = color.blue();
qDebug("%d red + %d green + %d blue", red, green, blue);

uint16_t Rgb565 = 0;
Rgb565 = (((red & 0xf8)<<8) + ((green & 0xfc)<<3) + (blue>>3));
qDebug() << Rgb565;

Например, если значения RGB были (255, 0, 0), вывод 63488. Я ожидал, что результат будет0xF800. Что я делаю не так?

0 ответов

Другие вопросы по тегам