Есть ли способ измерить тон кожи объекта из приложения для iPhone? - PullRequest
0 голосов
/ 18 мая 2010

Я пытаюсь найти способ запрограммировать / купить приложение, чтобы использовать iphone для определения тона кожи кого-либо по объективной шкале, используя RGB-фотографию, которую они снимают сами. У кого-нибудь есть указатели?

1 Ответ

0 голосов
/ 18 мая 2010

Я думаю, что возражения против этого правильны - его калибровка будет довольно тяжелой работой. Однако любое решение будет опираться на возможность получить цвет определенного пикселя на изображении (в данном случае UIImageView ...)

- (UIColor*) getPixelColorAtLocation:(CGPoint)point {</p> <pre><code>UIColor* color = nil; CGImageRef inImage = self.image.CGImage; // Create off screen bitmap context to draw the image into. Format ARGB is 4 bytes for each pixel: Alpa, Red, Green, Blue CGContextRef cgctx = [self createARGBBitmapContextFromImage:inImage]; if (cgctx == NULL) { return nil; /* error */ } size_t w = CGImageGetWidth(inImage); size_t h = CGImageGetHeight(inImage); CGRect rect = {{0,0},{w,h}}; // Draw the image to the bitmap context. Once we draw, the memory // allocated for the context for rendering will then contain the // raw image data in the specified color space. CGContextDrawImage(cgctx, rect, inImage); // Now we can get a pointer to the image data associated with the bitmap // context. unsigned char* data = CGBitmapContextGetData (cgctx); if (data != NULL) { //offset locates the pixel in the data from x,y. //4 for 4 bytes of data per pixel, w is width of one row of data. int offset = 4*((w*round(point.y))+round(point.x)); int alpha = data[offset]; int red = data[offset+1]; int green = data[offset+2]; int blue = data[offset+3]; NSLog(@"offset: %i colors: RGB A %i %i %i %i",offset,red,green,blue,alpha); color = [UIColor colorWithRed:(red/255.0f) green:(green/255.0f) blue:(blue/255.0f) alpha:(alpha/255.0f)]; } // When finished, release the context CGContextRelease(cgctx); // Free image data memory for the context if (data) { free(data); } return color;

}

Этот код относится к классу colourPicker, который содержит следующее (c)

// Создано markj 3/6/09. // Copyright 2009 Марк Джонсон. Все права защищены.

Полная статья здесь http://www.markj.net/iphone-uiimage-pixel-color/

...