2013-05-10 2 views
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; 

} 

여기에 어떤 문제가 있습니까?
아니면 다른 사람이 나에게 다른 해결책을 제안 할 수 있습니까?

감사합니다.

답변

0

이것은 정말 번거로운 솔루션 인 것으로 보입니다. 제 제안은 모든 조각에 대해 퍼즐의 좌상단 좌표를 나타내는 표를 유지하고 사용자가 손가락을 올리면 현재 위치에서 지정된 위치까지의 절대 거리를 계산한다는 것입니다.