在UIImageView上查找特定像素的颜色

时间:2014-01-28 11:33:35

标签: ios iphone ios7 uiimageview uiimage

我正在开发一个绘图应用程序,并希望构建撤消管理器。我存储用户绘制的每个位置的像素坐标值,但我还想存储用户绘制的点的旧像素颜色,以便我可以将其撤消到适当的颜色。但我无法这样做。任何人都可以提供帮助。

以下是我目前用于获取像素颜色的代码:

UIGraphicsBeginImageContext(self.tempDrawImage.frame.size);
CGContextRef context = UIGraphicsGetCurrentContext();
int bpr = CGBitmapContextGetBytesPerRow(context);
unsigned char * data = CGBitmapContextGetData(context);
if (data!=NULL)
{
    int offset = bpr*(lastPoint.y)+ 4*(lastPoint.x);
    NSLog(@"Red : %d",data[offset+0]);
    NSLog(@"Green : %d",data[offset+1]);
    NSLog(@"Blue : %d",data[offset+2]);
}

2 个答案:

答案 0 :(得分:0)

使用UIImage {{1}}类别类的最佳解决方案。我用过这个,非常好,非常完美。

答案 1 :(得分:0)

您可以在图像绘制修改开始之前每次创建图像的副本(例如,在用户点击屏幕之前)。