Je veux créer un sélecteur de couleur. Donc, je pensais que l'utilisation NSReadPixel
serait une bonne approche pour recevoir la couleur des pixels. Donc ce que je l'ai fait essentiellement était le suivant:NSReadPixel() renvoie toujours
class CustomWindowController: NSWindowController {
override func mouseMoved(with event: NSEvent) {
let mouseLocation = NSEvent.mouseLocation()
let pickedColor = NSReadPixel(mouseLocation)
}
}
Mais pickedColor
retourne toujours nil
. Même si j'essaie de "lire Pixel" avec un point fixe (à des fins de test), il renvoie toujours nil
. Qu'est-ce que je rate?
EDIT # 1
J'ai suivi la NSBitmapImageRep
/colorAt
approche des réponses et a remarqué que le NSColor semble être un peu différent (dans la plupart des cas plus lumineux) résultant qu'il devrait être (prendre un regarde la capture d'écran). Dois-je considérer colorSpaces ou autre? (Et comment)
EDIT # 2
Got ça marche - bitmap.colorSpaceName = NSDeviceRGBColorSpace
le tour est joué.
Fonctionne parfaitement bien. Merci beaucoup! – ixany
J'ai remarqué que la couleur résultante n'est pas exactement la même que dans le pixel choisi (voir mon édition ci-dessus). Pourriez-vous s'il vous plaît être si gentil et jeter un coup d'oeil? Merci d'avance! :) – ixany
Essayez de le calibrer - créez une image avec des couleurs différentes et explorez avec votre sélecteur. Peut être x ± 1 y ± 1 résoudre votre problème. –