NSColor | Erstellen Farbe von RGB-Werten
In meiner Anwendung, bekomme ich die RGB-Werte als unsigned char so wird es nicht mehr sein, dann 255,
Ich bin mit NSColor-API zu erstellen, die Farbe und ziehen Sie die schriftart-und Hintergrundfarbe,
dies ist die Funktion, die ich geschrieben habe,
+(NSColor *)getColorFromRGB:(unsigned char)r blue:(unsigned char)b green:(unsigned char)g
{
CGFloat rFloat = r/255.0;
CGFloat gFloat = g/255.0;
CGFloat bFloat = b/255.0;
// return [NSColor colorWithCalibratedRed:((float)r/255.0) green:((float)g/255.0) blue:((float)b/255.0) alpha:1.0];
return [NSColor colorWithCalibratedRed:rFloat green:gFloat blue:bFloat alpha:1.0];
}
In fast allen Fall, wenn ich vergleichen Sie die Farbe mit meinem RGB-Wert in RGB Gaumen, die Farbe ist nicht passend,
Zum Beispiel, wenn ich den pass ,
r = 187,
g = 170,
b = 170,
Sollte es zeichnen, das hellgrau, aber ich bin immer komplett whilte Farbe, in diesem Fall,
jemand eine Idee, was ich falsch mache,
Freundlichen GRÜßEN
Rohan
- Sie sicher, dass Ihr monitor Farbe kalibriert?
- In welchem Maßstab sind Sie vorbei die "input" - Komponenten? Ist es out-of-255?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn Sie auf der Durchreise sind die input-Komponenten aus 255 und Sie einschränken möchten es innerhalb von 255 für die Sicherheit Zweck, Sie können versuchen, diese:
CGFloat rFloat = r % 255.0;
CGFloat gFloat = g % 255.0;
CGFloat bFloat = b % 255.0;
Statt Division % Wert.
%
produzieren Werte außerhalb des Bereichs, wie die+colorWithCalibratedRed:green:blue:alpha
Methode nimmt Werte im Bereich von 0-1.Den code bei mir funktioniert. Versuchen Sie Debuggen, haben Sie daran gedacht, zu nennen
-set
auf Ihre Farbe nach dem anlegen? Hier finden Sie einige Beispiel-code, der funktioniert:colorFromRGBA
, fügen Sie eindouble a
parameter, und weisen Sie diealpha:
Wert.Erweiterung in Swift 2
Können Sie diese Erweiterung verwenden, die akzeptiert RGB (0-255) von Photoshop, Sketch, etc. und gibt eine richtige NSColor Beispiel (bitte beachten Sie, dass einige source-code-Zeilen sind breiter als hier angezeigt):
}
Beispiel verwenden: