我有CGImage的RGB数据。但是获取平均颜色的过程非常缓慢。任何想法?感激。
let screenShot:CGImage = CGDisplayCreateImage(activeDisplays[Int(index)],rect: myrect)!
let dp: UnsafePointer<UInt8> = CFDataGetBytePtr(screenShot.dataProvider?.data)
var bsum:Int = 0
var rsum:Int = 0
var gsum:Int = 0
for j in 0..<(oneH*oneW){
rsum += Int(dp[j*4])
gsum += Int(dp[j*4+1])
bsum += Int(dp[j*4+2])
}
rsum/=onepack
gsum/=onepack
bsum/=onepack
https://gist.github.com/jeffrafter/ad8516d4ed7221a5cfd4b66d2f7f4ca1
这是正确的答案。
但是我发现它滑行了太多时间。因此我不愿通过跳几行来对像素进行采样。速度更快。