Ich möchte einen Farbwähler erstellen. Also dachte ich, NSReadPixel
wäre ein guter Ansatz, um die Pixelfarbe zu erhalten. Also, was ich im Grunde tat, war dies:NSReadPixel() gibt immer Null
class CustomWindowController: NSWindowController {
override func mouseMoved(with event: NSEvent) {
let mouseLocation = NSEvent.mouseLocation()
let pickedColor = NSReadPixel(mouseLocation)
}
}
Aber pickedColor
immer wieder nil
. Auch wenn ich versuche, mit einem festen Punkt (zu Testzwecken) "readPixel" zu lesen, gibt es immer noch nil
zurück. Was vermisse ich?
EDIT # 1
ich den NSBitmapImageRep
/colorAt
Ansatz aus den Antworten und bemerkte befolgt habe, dass die resultierende NSColor ein wenig anders zu sein scheint (in den meisten Fällen heller), dass es sein soll (nehmen eine schau dir den Screenshot an). Muss ich Farbräume oder so berücksichtigen? (? Und wie)
EDIT # 2
Verstanden arbeiten - bitmap.colorSpaceName = NSDeviceRGBColorSpace
der Trick funktioniert.
Funktioniert einwandfrei. Ich danke dir sehr! – ixany
Ich habe festgestellt, dass die resultierende Farbe nicht genau die selbe ist wie im ausgewählten Pixel (siehe meine Bearbeitung oben). Würdest du bitte so nett sein und es dir anschauen? Danke im Voraus! :) – ixany
Versuchen Sie es zu kalibrieren - erstellen Sie ein Bild mit souverän verschiedenen Farben und erkunden Sie mit Ihrem Picker. Sei x ± 1 y ± 1 löse dein Problem. –