颜色从像素斯威夫特2

问题描述:

我有试图确定位置的颜色的图像时,我提供的坐标给这个函数的问题颜色从像素斯威夫特2

func getColourFromPoint(point:CGPoint) -> UIColor { 
    let colorSpace:CGColorSpace = CGColorSpaceCreateDeviceRGB()! 
    let bitmapInfo = CGBitmapInfo(rawValue: CGImageAlphaInfo.PremultipliedLast.rawValue) 
    var pixelData:[UInt8] = [0, 0, 0, 0] 
    let context = CGBitmapContextCreate(&pixelData, 1, 1, 8, 4, colorSpace, bitmapInfo) 
    CGContextTranslateCTM(context, -point.x, -point.y); 
    self.layer.renderInContext(context) 

    var red:CGFloat = CGFloat(pixelData[0])/CGFloat(255.0) 
    var green:CGFloat = CGFloat(pixelData[1])/CGFloat(255.0) 
    var blue:CGFloat = CGFloat(pixelData[2])/CGFloat(255.0) 
    var alpha:CGFloat = CGFloat(pixelData[3])/CGFloat(255.0) 

    var color:UIColor = UIColor(red: red, green: green, blue: blue, alpha: alpha) 
    return color 
} 

我得到的是一个错误 “不能转换类型的值“CGBitmapInfo”预期参数类型“UInt32的”

据我所知,BITMAPINFO UInt32的,所以我很为难。

这似乎是一个结构符合的Opti onSetType现在。尝试rawValue ...

let context = CGBitmapContextCreate(&pixelData, 1, 1, 8, 4, colorSpace, bitmapInfo.rawValue) 
+0

谢谢。就是这样。现在起作用了。我刚刚添加了bitmapInfo。** rawdata ** –

+0

当然,请参阅更新。 – MirekE