2012-01-21 44 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