je le code suivant qui tente de tester chaque pixel dans un rectangle de pixelsQuel est le moyen le plus efficace de saisir un rectangle de pixels dans ios?
px, py = Emplacement du toucher
dx, dy = Taille du rectangle à tester
UIImage *myImage; // image from which pixels are read
int ux = px + dx;
int uy = py + dy;
for (int x = (px-dx); x <= ux; ++x)
{
for (int y = (py-dy); y <= uy; ++y)
{
unsigned char pixelData[] = { 0, 0, 0, 0 };
CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceRGB();
CGContextRef context = CGBitmapContextCreate(pixelData, 1, 1, 8, 4, colorSpace, kCGImageAlphaPremultipliedLast | kCGBitmapByteOrder32Big);
CGImageRef cgimage = myImage.CGImage;
int imageWidth = CGImageGetWidth(cgimage);
int imageHeight = CGImageGetHeight(cgimage);
CGContextDrawImage(context, CGRectMake(-px, py - imageHeight, imageWidth, imageHeight), cgimage);
CGColorSpaceRelease(colorSpace);
CGContextRelease(context);
// Here I have latest pixel, with RBG values stored in pixelData that I can test
}
}
Le le code dans la boucle interne saisit le pixel à l'emplacement x, y. Existe-t-il un moyen plus efficace d'extraire tout le rectangle de pixels (x-dx, y-dy), (x + dx, y + dy) de l'UIImage (myImage)?
Merci pour les réponses et les explications, mais je ne vois pas d'endroit où vous écrivez l'image dans le contexte? –
Oh ouais, désolé à ce sujet. C'est corrigé maintenant. –