Skip to content

Instantly share code, notes, and snippets.

@marchinram
Last active January 19, 2022 08:53
Show Gist options
  • Save marchinram/3675efc96bf1cc2c02a5 to your computer and use it in GitHub Desktop.
Save marchinram/3675efc96bf1cc2c02a5 to your computer and use it in GitHub Desktop.
iOS Swift UIImage subscript extension to get pixel color
import UIKit
extension UIImage {
subscript (x: Int, y: Int) -> UIColor? {
guard x >= 0 && x < Int(size.width) && y >= 0 && y < Int(size.height),
let cgImage = cgImage,
let provider = cgImage.dataProvider,
let providerData = provider.data,
let data = CFDataGetBytePtr(providerData) else {
return nil
}
let numberOfComponents = 4
let pixelData = ((Int(size.width) * y) + x) * numberOfComponents
let r = CGFloat(data[pixelData]) / 255.0
let g = CGFloat(data[pixelData + 1]) / 255.0
let b = CGFloat(data[pixelData + 2]) / 255.0
let a = CGFloat(data[pixelData + 3]) / 255.0
return UIColor(red: r, green: g, blue: b, alpha: a)
}
}
@Shiko007
Copy link

Doesn't work on black for some reason

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment