2010-08-04 4 views
0

AVFramework를 사용하여 카메라 프레임을 캡처하고 UIImageView에서 처리하고 표시하고 싶지만 문제가 있습니다. 코드가 있습니다 :UIImageView에서 이미지를 표시하지 않습니다. - iPhone SDK

// 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]; 
} 

그러나 표시되지 않습니다. 정확한 크기는 NSLog에 표시, 내가 넣을 때

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

을있는 viewDidLoad에, 이미지는 (그래서이있는 UIImageView이 제대로 연결되어) 알고 올바르게 표시됩니다.

작동하지 않아야하는 이유가 있습니까? 나는 지금 당장 패배하고있다.

건배,

+0

나는 또한 내가 넣을 때 추가해야합니다 : [이미지 뷰 setImage : [있는 UIImage imageNamed : @ "SOMETHINGELSE .png "]]; captureOutput의 : 이미지는 여전히 표시되지 않습니다. – Brett

답변

2

메인 스레드에서이 작업을 수행하고 있습니까? 당신은 (당신이 먼저 처리하고 있기 때문에, 바람직하지 않은) 대리인의 주요 큐를 사용하거나 할 수 있습니다 :

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

고맙습니다. 응답 시간이 오래 걸릴 것 같습니다. 내 큐에 출력을 캡처하고 있었다. – DPlusV

0

브렛 이미지 뷰가 올바르게 설정되어 있습니까? imageView가 실제로 nil이면 [imageView setImage:image];을 호출해도 아무 소리도 나지 않습니다.

+0

네, NSLog (@ "% @", imageView); 주소, CALayer 주소 등을 볼 수 있습니다. 따라서 그것이 0이 아닌 것처럼 보입니다. – Brett

+0

구체적으로 : imageView의 NSLog는 다음과 같습니다 : > – Brett

관련 문제