QString Conversion::contrastColor(const QString& color) { if (color.isNull()) { return QColor(Qt::black).name(); } #if 0 QColor color(bgColor); int d = 0; // counting the perceptive luminance - human eye favors green color... double a = 1 - (0.299 * color.red() + 0.587 * color.green() + 0.114 * color.blue()) / 255; if (a < 0.5) { d = 0; // bright colors - black font } else { d = 255; // dark colors - white font } return QColor(d, d, d).name(); #else int luminosity = luma(QColor(color)); if (luminosity <= 60) { return QColor(Qt::white).name(); } else { return QColor(Qt::black).name(); } #endif }