ich bin der Meinung einen Fehler in der Klasse gefunden zu haben, die für die Darstellung von Farben mit 24bit Farbtiefe zuständig ist. Kann mir jemand das bestätigen? sonst werd ich nämlich wohl noc hweiter suchen müssen.
Die Klasse qrgb888 aus der Datei src/gui/painting/qdrawhepler_p.h implementiert zwei Funktionen um den Farbwert als quint32 zurück zu bekommen. Beide liefern unterschiedliche Ergebnisse.
Code: Alles auswählen
qrgb888::operator quint32() const
{
return qRgb(data[0], data[1], data[2]);
}
Q_GUI_EXPORT_INLINE QRgb qRgb(int r, int g, int b)// set RGB value
{ return (0xffu << 24) | ((r & 0xff) << 16) | ((g & 0xff) << 8) | (b & 0xff); }Code: Alles auswählen
qrgb888::qrgb888(quint32 v)
{
data[0] = qRed(v);
data[1] = qGreen(v);
data[2] = qBlue(v);
}Code: Alles auswählen
quint32 qrgb888::rawValue() const
{
return (data[2] << 16) | (data[1] << 8) | data[0];
}
Mit freundlichen Grüßen
Ghal Maraz