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.

Was it helpful?

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
scroll top