How to set RGBA Color of a Pixel of an UIImage
-
29-01-2021 - |
Question
I am looking for a possibility to set (change) the RGBA color of a Pixel of an UIImage for my Iphone Application. (I actually want to implement some floodfill stuff)
So I need something like this:
-(void) setPixelColorOfImage: (UIImage*) img atXCord: (int) x atYCord: (int) y
withRedColor: (CGFloat) red blueColor: (CGFloat) blue greenColor: (CGFloat) green
alpha: (CGFloat) alpha {
// need some code her
}
Because this method will be called quite often, it shouldn't be too slow.
Please help.
Solution
UIImage is not (externally) mutable, so you must copy, then edit, then convert to UIImage.
Copy
- create a CGBitmapContext
- draw the source image onto it
Edit
- get a hold of the context's pixel buffer
- mutate that pixel buffer
Convert to UIImage
- copy a CGImage representation of the context
- create a new UIImage from the CGImage
fwiw, the form can also be used on osx (using NSImage).
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow