converting image to binary in swift

Viewed 2591

I want to convert an image to binary black and white, at the moment I am looping through pixels (stored in UnsafeMutableBufferPointer) using normal nested loops, comparing each RGB to average and setting it to black or white, however.

This seems really slow and I am sure there is a built in a way that uses gpu or is well optimized. If you could provide a code sample or link it'd be great.

for var y in 0..<height {
    for var x in 0..<width{
        //Pixel is small class i made for 8 bit access and comparison
        if (Buffer[x+y*width]  < AVRRGB) {
            Buffer[x+y*width] = Pixel(RGB: 0x000000FF)
        } else{
            Buffer[x+y*width] = Pixel(RGB: 0xFFFFFFFF)
        }
    }
}
2 Answers
Related