如何获取返回rgb,十六进制值的图像像素? IOS

时间:2013-11-25 13:33:00

标签: ios iphone objective-c uicolor color-picker

我是ios的新手,所以请保持温柔......

我有一个imageview,可以显示photo library中的所选图片。

我想选择我用rgbhex值选择触摸图片的颜色。

1 个答案:

答案 0 :(得分:0)

我认为你应该尝试这种方法:

- (UIColor *)colorAtPosition:(CGPoint)position 
{
    CGRect sourceRect = CGRectMake(position.x, position.y, 1.f, 1.f);
    CGImageRef imageRef = CGImageCreateWithImageInRect(self.CGImage, sourceRect);

    CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceRGB();
    unsigned char *buffer = malloc(4);
    CGBitmapInfo bitmapInfo = kCGImageAlphaPremultipliedLast | kCGBitmapByteOrder32Big;
    CGContextRef context = CGBitmapContextCreate(buffer, 1, 1, 8, 4, colorSpace, bitmapInfo);
    CGColorSpaceRelease(colorSpace);
    CGContextDrawImage(context, CGRectMake(0.f, 0.f, 1.f, 1.f), imageRef);
    CGImageRelease(imageRef);
    CGContextRelease(context);

    CGFloat r = buffer[0] / 255.f;
    CGFloat g = buffer[1] / 255.f;
    CGFloat b = buffer[2] / 255.f;
    CGFloat a = buffer[3] / 255.f;

   free(buffer);

   return [UIColor colorWithRed:r green:g blue:b alpha:a];
}

或试试这个:

<强> http://www.markj.net/iphone-uiimage-pixel-color/

这是非常酷的方法。