Skip to content

Instantly share code, notes, and snippets.

@ezefranca
Forked from marchinram/UIImage+PixelColor.swift
Created January 31, 2020 20:48
Show Gist options
  • Save ezefranca/0fad408e8a8346c41e511d926cf045bd to your computer and use it in GitHub Desktop.
Save ezefranca/0fad408e8a8346c41e511d926cf045bd 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)
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment