Les données d'image est disponible pour vous aussi précisément que - un tableau à deux dimensions de pixels, chaque pixel étant représenté par un nombre entier de 32 bits. Pour chacun des composants de couleur (rouge, vert, bleu et alpaga), il existe une valeur de 8 bits. L'ordre de ces valeurs à l'échelle de 8 bits dans l'entier de 32 bits varie avec le format des données d'image. La doc pomme sur tout ça est vraiment bonne. Bien qu'il y ait des trucs attrayants Apple utilisant CGDataProviderCopyData pour vous donner un pointeur sur le stockage de données réel d'un UIImage, en pratique cela peut être un casse-tête, car le format de ce stockage interne peut varier considérablement d'une image à l'autre. En pratique, la plupart des gens qui utilisent le traitement d'image semblent utiliser cette approche:
CGImageRef image = [UIImage 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));
CGContextRelease(context);
// rawData contains image data in the RGBA8888 format.
// for any pixel at coordinate x,y -- the value is
//
int pixelIndex = (bytesPerRow * y) + x * bytesPerPixel;
unsigned char red = rawData[pixelIndex];
green = rawData[pixelIndex + 1];
blue = rawData[pixelIndex + 2];
alpha = rawData[pixelIndex + 3];
Bonne réponse! Quelle est l'efficacité de la sauvegarde/lecture de cette image en temps réel? En supposant que je mets un drapeau chaque fois que je fais un changement, ce ne sera pas chaque tick. – quantumpotato
C'est plutôt efficace. Vous pouvez approcher 30 fps même si vous faites des changements en permanence ... –
Merci! J'ai hâte d'essayer ça. – quantumpotato