大家好
我需要编写简单的益智游戏,主要条件是当拼图“释放”时它接近目的地时,它会准确到达它应该在的位置。
所以我试图获取图像每个像素的坐标数组,为此我想将像素颜色与背景颜色进行比较,如果它们不相等,那就是图像像素的坐标。但是..我不知道该怎么做。
我试过了:
- (BOOL)isImagePixel:(UIImage *)image withX:(int)x andY:(int) y {
CFDataRef pixelData = CGDataProviderCopyData(CGImageGetDataProvider(image.CGImage));
const UInt8* data = CFDataGetBytePtr(pixelData);
int pixelInfo = ((image.size.width * y) + x ) * 4; // The image is png
UInt8 red = data[pixelInfo];
UInt8 green = data[(pixelInfo + 1)];
UInt8 blue = data[pixelInfo + 2];
UInt8 alpha = data[pixelInfo + 3];
CFRelease(pixelData);
UIColor* color = [UIColor colorWithRed:red/255.0f green:green/255.0f blue:blue/255.0f alpha:alpha/255.0f];
NSLog(@"color is %@",[UIColor whiteColor]);
if ([color isEqual:self.view.backgroundColor]){
NSLog(@"x = %d, y = %d",x,y);
return YES;
}
else return NO;
}
这里有什么问题?
或者也许有人可以建议我另一种解决方案?
谢谢你。