Не видя ваш код, трудно понять, что происходит не так.
Вы можете нарисовать изображение в NSBitmapImageRep
с помощью метода initWithData:
и передать в TIFFRepresentation
.
изображения.
Затем можно получить значение пикселя, используя метод colorAtX:y:
, который является методом NSBitmapImageRep
, а не NSImage
:
NSBitmapImageRep* imageRep = [[NSBitmapImageRep alloc] initWithData:[yourImage TIFFRepresentation]];
NSSize imageSize = [yourImage size];
CGFloat y = imageSize.height - 100.0;
NSColor* color = [imageRep colorAtX:100.0 y:y];
[imageRep release];
Обратите внимание, что вы должны выполнить настройку для значения y
, поскольку метод colorAtX:y
использует систему координат, которая начинается в верхнем левом углу изображения, тогда как система NSImage
начинается в левом нижнем углу. 1017 *
В качестве альтернативы, если пиксель виден на экране, вы можете использовать функцию NSReadPixel()
, чтобы получить цвет пикселя в текущей системе координат.