je code quelque chose comme ça ...Buffère écriture devient lent après CGBitmapContextCreate
CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceRGB();
CGContextRef ctx = CGBitmapContextCreate(pixelArray, width, height, 8, 4 * width, colorSpace, kCGImageAlphaNoneSkipLast);
CGImageRef createdImage = CGBitmapContextCreateImage (ctx);
uiImage = [[UIImage imageWithCGImage:createdImage] retain];
Le problème est que, une fois que je crée CGImage et UIImage du tampon (pixelArray), toutes les opérations d'écriture dans la mémoire tampon est au moins 4x plus lent. Cela se produit uniquement sur un appareil iPad non sur iPhone. Est-ce que quelqu'un a le même problème? Qu'est-ce qui se passe ici?
Voici le code d'opération d'écriture, et je l'appelle ceux-ci dans des boucles (setPixel) ...
- (RGBA*) getPixel:(NSInteger)x y:(NSInteger)y {
// Bound the co-cordinates.
x = MIN(MAX(x, 0), width - 1);
y = MIN(MAX(y, 0), height - 1);
// yIndexes are pre populated
return (RGBA*)(&pixelArray[(x + yIndexes[y]) << 2]);
}
- (void) setPixel:(RGBA*)color x:(NSInteger)x y:(NSInteger)y {
// Bound the co-cordinates.
x = MIN(MAX(x, 0), _width);
y = MIN(MAX(y, 0), _height);
memcpy([self getPixel:x y:y], color, 3);
colorDirtyBit = YES;
}
Montrez-nous votre partie de code pour votre opération d'écriture? – tia
J'ai mis à jour la question avec le code d'écriture. – Abix