Я нашел пример кода Objective-C, который получает цвет пикселя в точке здесь: How to get the pixel color on touch?Получить цвет пикселя На Поинт В Swift
Конкретная часть кода мне нужна помощь именно там контекст создается с помощью CGColorSpaceCreateDeviceRGB:
--- Это код Objective-C
unsigned char pixel[4] = {0};
CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceRGB();
CGContextRef context = CGBitmapContextCreate(pixel,
1, 1, 8, 4, colorSpace, (CGBitmapInfo)kCGImageAlphaPremultipliedLast);
CGContextTranslateCTM(context, -point.x, -point.y);
Моя лучшая попытка выглядит следующим образом (я ничего не возвращает пока я пытаюсь получить контекст сначала правильно):
--- Это моя лучшая попытка Swift преобразования
func getPixelColorAtPoint()
{
let pixel = UnsafeMutablePointer<CUnsignedChar>.alloc(1)
var colorSpace:CGColorSpaceRef = CGColorSpaceCreateDeviceRGB()
let context = CGBitmapContextCreate(pixel, width: 1, height: 1, bitsPerComponent: 8, bytesPerRow: 4, space: nil, bitmapInfo: CGImageAlphaInfo.PremultipliedLast)
}
Однако это дает мне ошибку
Cannot convert the expression's type '(UnsafeMutablePointer<CUnsignedChar>, width: IntegerLiteralConvertible, height: IntegerLiteralConvertible, bitsPerComponent: IntegerLiteralConvertible, bytesPerRow: IntegerLiteralConvertible, space: NilLiteralConvertible, bitmapInfo: CGImageAlphaInfo)' to type 'IntegerLiteralConvertible'
Если бы вы могли посоветовать, как мне нужно настроить мой код выше, чтобы получить параметры параметров контекста введены правильно. Я был бы благодарен вам!
Wow! Я никогда не знал такой разницы между функциями и методами (они всегда имели в виду одно и то же), что ДЕЙСТВИТЕЛЬНО очищает вещи благодаря вам. Также спасибо за указание на разницу распределения, я тоже застрял на этом. Большое спасибо! – Aggressor