Pracuję z AVCaptureVideoDataOutput
i chcę przekonwertować CMSampleBufferRef
na UIImage
. Wiele odpowiedzi są takie same, jak ten UIImage created from CMSampleBufferRef not displayed in UIImageView? i AVCaptureSession with multiple previewsKonwertuj CMSampleBufferRef na UIImage z przestrzenią kolorów YUV?
To działa dobrze, jeśli mogę ustawić VideoDataOutput przestrzeń kolorów do BGRA (dobro tej odpowiedzi CGBitmapContextCreateImage error)
NSString* key = (NSString*)kCVPixelBufferPixelFormatTypeKey;
NSNumber* value = [NSNumber numberWithUnsignedInt:kCVPixelFormatType_32BGRA];
NSDictionary* videoSettings = [NSDictionary dictionaryWithObject:value forKey:key];
[dataOutput setVideoSettings:videoSettings];
bez powyższych videoSettings będę otrzymać następujące błędy
CGBitmapContextCreate: invalid data bytes/row: should be at least 2560 for 8 integer bits/component, 3 components, kCGImageAlphaPremultipliedFirst.
<Error>: CGBitmapContextCreateImage: invalid context 0x0
Praca z BGRA nie jest dobrym wyborem, ponieważ nie ma nad głową konwersja z YUV (domyślna przestrzeń kolorów AVCaptureSession) do BGRA, jak stwierdził Brad i Codo í n How to get the Y component from CMSampleBuffer resulted from the AVCaptureSession?
Więc czy istnieje sposób przekonwertowania CMSampleBufferRef
na UIImage
i pracę z przestrzenią kolorów YUV?
Każde rozwiązanie tego problemu? –
@AdarshVC dlaczego nie zagłosujesz na pytanie, aby uczynić je bardziej zauważalnym? – onmyway133
sprawdź to pytanie http://stackoverflow.com/questions/3305862/uiimage-created-from-cmsamplebuffreref-niewyświetlane-w-imageview –