2010-08-04 6 views
0

J'utilise AVFramework pour capturer des cadres de caméra et je voudrais les traiter et les afficher dans un UIImageView mais j'ai quelques problèmes. J'ai le code:UIImageView n'affiche pas d'image - SDK iPhone

// Delegate routine that is called when a sample buffer was written 
- (void)captureOutput:(AVCaptureOutput *)captureOutput didOutputSampleBuffer:(CMSampleBufferRef)sampleBuffer fromConnection:(AVCaptureConnection *)connection 
{ 
    //NSLog(@"Capturing\n"); 
    // Create a UIImage from the sample buffer data 
    UIImage *image = [self imageFromSampleBuffer:sampleBuffer];  

    NSLog(@"Image: %f %f\n", image.size.height, image.size.width); 
    [imageView setImage:image]; 
} 

Cependant, il ne sera pas affiché. La taille correcte apparaît dans le NSLog, et quand je mets:

[imageView setImage:[UIImage imageNamed:@"SomethingElse.png"]]; 

dans viewDidLoad, une image est affichée correctement (je sais le UIImageView est correctement connecté).

Y at-il une raison pour laquelle cela ne devrait pas fonctionner ??? Je suis à perte en ce moment.

Cheers, Brett

+0

Je dois aussi ajouter que quand je mets: [imageView setImage: [UIImage imageNamed: @ "SomethingElse .png "]]; dans captureOutput: l'image n'est toujours pas affichée. – Brett

Répondre

2

Faites-vous cela sur le fil principal? Vous pouvez utiliser la file d'attente principale pour le délégué (indésirable, parce que vous faites le traitement en premier) ou:

dispatch_async(dispatch_get_main_queue(), ^{ 
    imageView.image = ...; 
}); 
+1

merci, votre réponse m'a sauvé ce qui serait probablement long! Je capturais la sortie sur ma propre file d'attente. – DPlusV

0

Est-imageView réglé correctement? Si imageView est réellement nul, votre appel au [imageView setImage:image]; ne fera rien en silence.

+0

Yup, quand je NSLog (@ "% @", imageView); Je peux voir l'adresse, l'adresse CALayer, etc. On dirait que ce n'est pas nul. – Brett

+0

Plus précisément: le NSLog de imageView ressemble à: > – Brett

Questions connexes