Même si cela peut sembler une simple question, ce n'est pas facile de faire quelque chose comme ça. Vous avez besoin de beaucoup d'informations générales pour que tout se passe bien. Cela dépend aussi de l'origine de l'image et de ce que vous voulez en faire.
Je ne vais pas vous donner un exemple de travail, mais voici quelques conseils:
lecture dans une image:
UIImage *img = [UIImage imageNamed:@"myimage.png"];
// make sure you added myimage.png to your project
Créer votre propre « contexte graphique » pour dessiner sur:
UIGraphicsBeginImageContext(CGSizeMake(480.0f, 320.0f)); // the size (width,height)
CGContextRef ctx = UIGraphicsGetCurrentContext();
Peinture de votre image dans votre contexte (actuel):
[img drawAtPoint:CGPointMake(0.0f, -480.0f)]; // (draws on current context)
Faire un autre tableau:
CGContextBeginPath(ctx); // start a path
CGContextSetRGBStrokeColor(ctx,1,0,0,1); // red,green,blue,alpha with range 0-1
CGContextMoveToPoint(ctx,50,0); // move to beginning of path at point (50,0)
CGContextAddLineToPoint(ctx,100,100); // add a line to point (100,100)
CGContextStrokePath(ctx); // do the drawing
Transformer le contexte bitmap à une image encore:
UIImage *resultImage = UIGraphicsGetImageFromCurrentImageContext();
Et puis, que ce soit:
Afficher l'image au public, à partir d'un contrôleur de vue:
[self.view addSubview:[[[UIImageView alloc] initWithImage:resultImage] autorelease]];
Ou écrire l'image jpeg:
NSData *imagedata = UIImageJPEGRepresentation(img,0.8); // 0.8 = quality
[imagedata writeToFile:filename atomically:NO];
Ou comme PNG:
NSData *imagedata = UIImagePNGRepresentation(img);
[imagedata writeToFile:filename atomically:NO];
Pour ces derniers, vous devez avoir un nom de fichier, ce qui est pas si trivial soit (compte tenu de l'environnement de téléphone que vous vivez dans). C'est un autre sujet sur lequel vous trouverez beaucoup, rechercher des choses comme:
NSArray *path = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES);
NSString *filename = [[path elementAtIndex:0] stringByAppendingPathComponent:@"myimage.png"];
Voici les grandes lignes, je pourrais avoir fait quelques erreurs, mais cela devrait vous y aller au moins.
Où sont les pixels? Un fichier image que vous traitez, ou dans une vue en direct sur l'écran? –
En direct sur l'écran. – Zigglzworth