2012-11-08 44 views
0

例如,我有一個UIImage,我想知道圖像位置(300,200)是哪種顏色,我該怎麼辦?謝謝。如何在UIImage中獲取指定點的顏色?

+2

檢查此問題 - http://stackoverflow.com/questions/448125/how-to-get-pixel-data-from-a-uiimage-cocoa-touch-or-cgimage-core-graphics – rishi

+0

你應該嘗試亞光在這裏描述的技術:http://stackoverflow.com/questions/1042830/retrieving-a-pixel-alpha-value-for-a-uiimage - 當然,使用顏色目標位圖。好處是您不需要分配和繪製整個圖像來訪問一個像素的值。 – justin

回答

3

調用此方法的形式uitouch移動..

-(void) getPixelColorAtLocation:(CGPoint)point 
{ 
    unsigned char pixel[4] = {0}; 
    CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceRGB(); 
    CGContextRef context = CGBitmapContextCreate(pixel, 1, 1, 8, 4, colorSpace, kCGImageAlphaPremultipliedLast); 

    CGContextTranslateCTM(context, -point.x, -point.y); 

    [self.layer renderInContext:context]; 

    // NSLog(@"x- %f y- %f",point.x,point.y); 

    CGContextRelease(context); 
    CGColorSpaceRelease(colorSpace); 

    NSLog(@RGB Color code "%d %d %d",pixel[0],pixel[1],pixel[2]); 
} 

你可以得到觸摸點的顏色代碼RGB COLR組合。 試試吧

相關問題