Ios 遍历UIImage的所有像素

Ios 遍历UIImage的所有像素,ios,swift,uiimage,Ios,Swift,Uiimage,我需要一些关于如何迭代UIImage中的每个像素的帮助。我在每个像素中找到红色、绿色、蓝色和alpha颜色值,然后比较它们,看看照片中是否存在某种颜色 我有一个扩展,它返回像素的这些颜色值: extension UIImage { func getPixelColor(pos: CGPoint) -> UIColor { let pixelData = self.cgImage!.dataProvider!.data let data: UnsafePointer<UInt8>

我需要一些关于如何迭代UIImage中的每个像素的帮助。我在每个像素中找到红色、绿色、蓝色和alpha颜色值,然后比较它们,看看照片中是否存在某种颜色

我有一个扩展,它返回像素的这些颜色值:

extension UIImage { func getPixelColor(pos: CGPoint) -> UIColor {

let pixelData = self.cgImage!.dataProvider!.data
let data: UnsafePointer<UInt8> = CFDataGetBytePtr(pixelData)

let pixelInfo: Int = ((Int(self.size.width) * Int(pos.y)) + Int(pos.x)) * 4

let r = CGFloat(data[pixelInfo]) / CGFloat(255.0)
let g = CGFloat(data[pixelInfo+1]) / CGFloat(255.0)
let b = CGFloat(data[pixelInfo+2]) / CGFloat(255.0)
let a = CGFloat(data[pixelInfo+3]) / CGFloat(255.0)

return UIColor(red: r, green: g, blue: b, alpha: a)
}
我需要帮助创建一个for循环来遍历图像中的所有像素,并能够测试它们的特定颜色值

我也不确定如何获得像素的颜色值是否100%正确,所以如果我做错了,请随时告诉我

谢谢

使用嵌套for循环:

for yCo in 0 ..< Int(image.size.height) { 
    for xCo in 0 ..< Int(image.size.width) {

        if image.getPixelColor(pos: CGPoint(x: xCo, y: yCo)) == UIColor(red: 1, green: 1, blue: 1, alpha: 1) {
            //Next step
        }
    }
}
0中yCo的
for yCo in 0 ..< Int(image.size.height) { 
    for xCo in 0 ..< Int(image.size.width) {

        if image.getPixelColor(pos: CGPoint(x: xCo, y: yCo)) == UIColor(red: 1, green: 1, blue: 1, alpha: 1) {
            //Next step
        }
    }
}