Получение пикселя на UIImage - PullRequest
0 голосов
/ 22 января 2012

У меня есть метод для получения определенного пикселя в 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;

}

1 Ответ

0 голосов
/ 22 января 2012

Проверить это сообщение . Затем вы можете превратить экземпляр RGBAPixel в UIColor, используя [UIColor colorWithRed:green:blue:alpha:];

...