如何设置UIImage的像素的RGBA颜色

时间:2011-09-25 18:56:02

标签: objective-c colors uiimage pixel rgba

我正在寻找为我的Iphone应用程序设置(更改)UIImage的Pixel的RGBA颜色的可能性。 (我实际上想要实施一些洪水填充物)

所以我需要这样的东西:

-(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

}

因为这种方法会经常被调用,所以它不应该太慢。

请帮忙。

1 个答案:

答案 0 :(得分:2)

UIImage不是(外部)可变的,因此您必须复制,然后编辑,然后转换为UIImage。

复制

  • 创建CGBitmapContext
  • 将源图像绘制到其上

修改

  • 获取上下文的像素缓冲区
  • 改变那个像素缓冲区

转换为UIImage

  • 复制上下文的CGImage表示
  • 从CGImage
  • 创建一个新的UIImage

fwiw,表单也可以在osx上使用(使用NSImage)。