0
안녕 모두사용자 정의 uiimage의 각 픽셀 좌표를 가져 오는 방법은 무엇입니까?
나는 간단한 퍼즐 게임을 작성해야하고 기본 조건이 "해제"할 때 퍼즐의 조각이 목적지에 가까운 때 있어야 할 곳에 정확히이 얻을 수 있다는 것입니다.
그래서 이미지의 각 픽셀의 좌표 배열을 얻으려고했습니다. 이렇게하려면 픽셀 색을 배경색과 비교하고, 같지 않으면 이미지 픽셀의 좌표를 지정해야합니다. 그러나 .. 나는 이것을하는 법을 모르겠다.
내가 시도 :
- (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;
}
여기에 어떤 문제가 있습니까?
아니면 다른 사람이 나에게 다른 해결책을 제안 할 수 있습니까?
감사합니다.