2012-01-21 80 views
0

我有一種方法可以獲取UIImage上的特定像素,但似乎並沒有如此出色。顏色看起來不正確。任何人都可以確定原因在UIImage上獲取像素

+ (UIColor *)colorAtPixelX:(int)x Y:(int)y image:(UIImage *)img{ 

    CFDataRef pixelData = CGDataProviderCopyData(CGImageGetDataProvider(img.CGImage)); 
    const UInt8* data = CFDataGetBytePtr(pixelData); 

    int pixelInfo = ((img.size.width * y) + x) * 4; 

    UInt8 red = data[pixelInfo]; 
    UInt8 green = data[(pixelInfo + 1)]; 
    UInt8 blue = data[pixelInfo + 2]; 
    UInt8 alpha = data[pixelInfo + 3]; 
    CFRelease(pixelData); 

    UIColor *col = [UIColor colorWithRed:(red/255.0f) green:(green/255.0f) blue:(blue/255.0f) alpha:(alpha/255.0f)]; 

    return col; 

} 

回答

0

結賬this post。然後,您可以使用[UIColor colorWithRed:green:blue:alpha:];

將RGBAPixel實例變爲UIColor