проблемы разве получения данных пикселя я был в состоянии найти источник для этогоКак получить пиксельные данные от изображения, полученного с помощью Iphone
-(NSArray *)getRGBAtLocationOnImage:(UIImage *)theImage X:(int)x Y:(int)y
{
// First get the image into your data buffer
CGImageRef image = [theImage CGImage];
NSUInteger width = CGImageGetWidth(image);
NSUInteger height = CGImageGetHeight(image);
CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceRGB();
unsigned char *rawData = malloc(height * width * 4);
NSUInteger bytesPerPixel = 4;
NSUInteger bytesPerRow = bytesPerPixel * width;
NSUInteger bitsPerComponent = 8;
CGContextRef context = CGBitmapContextCreate(rawData, width, height, bitsPerComponent, bytesPerRow, colorSpace, kCGImageAlphaPremultipliedLast | kCGBitmapByteOrder32Big);
CGColorSpaceRelease(colorSpace);
CGContextDrawImage(context, CGRectMake(0, 0, width, height),image);
CGContextRelease(context);
// Now your rawData contains the image data in the RGBA8888 pixel format.
int byteIndex = (bytesPerRow * y) + x * bytesPerPixel;
int red = rawData[byteIndex];
int green = rawData[byteIndex + 1];
int blue = rawData[byteIndex + 2];
//int alpha = rawData[byteIndex + 3];
NSLog(@"Red: %d Green: %d Blue: %d",red,green,blue);
NSArray *i = [[NSArray alloc] initWithObjects:[NSNumber numberWithInt:red], [NSNumber numberWithInt:green], [NSNumber numberWithInt:blue], nil];
free(rawData);
return i;
}
проблемы я расположение пикселей я хочу получить. я не знаю, как определить, где расположены пиксели, которые я хочу получить. что это значит.
Ну - если вы не знаете, какие пиксели вы хотите, что вы ожидаете? –
Что именно вы хотите достичь? В этом примере кода вы передаете 'x' и' y', так что позиция известна заранее. Какая у вас информация, которую вы хотите преобразовать в позицию? –
проблема в том, что я не знаю, х и у перед рукой. Я получаю изображение с камеры. сразу после того, как снимок сделан, я распечатываю высоту и ширину. значение 3264 x 2448, я распечатываю значение снова после создания CGimageRef, и они меняются на противоположные. значение 2448 x 3264. Почему это. – lufthansa747