我想更改用户触摸图像的颜色。我得到了一些代码来获取低于
的图像数据NSString * path = [[NSBundle mainBundle] pathForResource:@"filename" ofType:@"jpg"];
UIImage * img = [[UIImage alloc]initWithContentsOfFile:path];
CGImageRef image = [img CGImage];
CFDataRef data = CGDataProviderCopyData(CGImageGetDataProvider(image));
const unsigned char * buffer = CFDataGetBytePtr(data);
我知道我可以轻松获得接触点,但我的问题在下面
答案 0 :(得分:1)
将手势识别器添加到呈现图像的UIImageView。当触发识别器时,您关心的位置将是......
// self.imageView is where you attached the recognizer. This == gestureRecognizer.view
CGPoint imageLocation = [gestureRecognizer locationInView:self.imageView];
可以通过确定图像的比例因子来独立地将此位置解析为像素位置设备。
要获取图像位置,请将该比例因子应用于手势位置...
CGPoint pixel = CGPointMake(imageLocation.x*image.scale, imageLocation.y*image.scale)
这应该是访问图像的正确坐标。剩下的步骤是获取像素数据。 This post提供了一种合理的方式来做到这一点。 (也没有亲自试过)。