Я хочу создать подборщик цветов. Поэтому я подумал, что использование NSReadPixel
будет хорошим подходом к получению цвета пикселей. Так что я в основном сделал это:NSReadPixel() всегда возвращает nil
class CustomWindowController: NSWindowController {
override func mouseMoved(with event: NSEvent) {
let mouseLocation = NSEvent.mouseLocation()
let pickedColor = NSReadPixel(mouseLocation)
}
}
Но pickedColor
всегда возвращает nil
. Даже если я попытаюсь «readPixel» с фиксированной точкой (для целей тестирования), он все равно возвращает nil
. Что мне не хватает?
EDIT # 1
Я следовал NSBitmapImageRep
/colorAt
подход от ответов и заметил, что в результате NSColor, кажется, немного отличается (в большинстве случаев ярче), что должно быть (взять посмотрите на скриншот). Должен ли я рассматривать colorSpaces или так? (? И как)
EDIT # 2
Понял работать - bitmap.colorSpaceName = NSDeviceRGBColorSpace
делает трюк.
Работает отлично. Спасибо огромное! – ixany
Я заметил, что полученный цвет не такой же, как в выбранном пикселе (см. Мое редактирование выше). Не могли бы вы быть такими добрыми и взглянуть на него? Заранее спасибо! :) – ixany
Попробуйте откалибровать его - создайте изображение с уверенно разными цветами и исследуйте с помощью своего сборщика. Может быть x ± 1 y ± 1 решить вашу проблему. –