颜色从像素斯威夫特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)
谢谢。就是这样。现在起作用了。我刚刚添加了bitmapInfo。** rawdata ** –
当然,请参阅更新。 – MirekE