2013-11-25 42 views
3

我是新來的ios所以請溫柔...如何獲得返回rgb,十六進制值的圖像的像素? ios

我有一個imageview它顯示從photo library選定的圖像。

我想選擇我選擇在圖像上觸摸的顏色,其值爲rgbhex

+0

好吧,你聽起來不僅僅是iOS的編程新時期。例如,「十六進制值」是什麼意思?這只是一種表示數字的方法...... – trojanfoe

+0

我想在觸摸時在每個像素點獲取RGB和十六進制顏色值。 –

+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/

這是很酷的方法。

+0

@kroolik http://www.markj.net/iphone-uiimage-pixel-color/對於自定義圖像無法正常工作...您檢查了嗎? –

+0

@iosLearner,我不是這篇文章的作者。我剛剛改進了另一個SO用戶發佈的修改建議。這個問題應該問Varun。 –

+0

嗯,好好爲你學習:) –

相關問題