paginas noticias net mordida manzanamordida manzana apple aplle 5x1 iphone core-graphics quartz-2d avfoundation

iphone - net - noticias apple



Girar CGImage tomada del cuadro de video (3)

Solo gira el contexto

Simplemente rota el contexto en radianes. Esta convocatoria giraría el contexto 90 grados.

CGFloat degrees = 90.f; CGFloat radians = degrees * (M_PI / 180.f); CGContextRotateCTM(context, radians);

Puede configurar fácilmente este método para tomar la orientación deseada y rotar en consecuencia.

Este es el código de Apple (de Preguntas y respuestas técnicas QA1702) para obtener un UIImage de un búfer de video. Desafortunadamente, la imagen devuelta se rota 90 grados. ¿Cómo edito esto para que la imagen devuelta esté correctamente orientada?

- (UIImage *) imageFromSampleBuffer:(CMSampleBufferRef) sampleBuffer { CVImageBufferRef imageBuffer = CMSampleBufferGetImageBuffer(sampleBuffer); CVPixelBufferLockBaseAddress(imageBuffer, 0); void *baseAddress = CVPixelBufferGetBaseAddress(imageBuffer); size_t bytesPerRow = CVPixelBufferGetBytesPerRow(imageBuffer); size_t width = CVPixelBufferGetWidth(imageBuffer); size_t height = CVPixelBufferGetHeight(imageBuffer); CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceRGB(); CGContextRef context = CGBitmapContextCreate(baseAddress, width, height, 8, bytesPerRow, colorSpace, kCGBitmapByteOrder32Little | kCGImageAlphaPremultipliedFirst); CGImageRef quartzImage = CGBitmapContextCreateImage(context); CVPixelBufferUnlockBaseAddress(imageBuffer,0); CGContextRelease(context); CGColorSpaceRelease(colorSpace); UIImage *image = [UIImage imageWithCGImage:quartzImage]; CGImageRelease(quartzImage); return (image); }


Depende de si está utilizando la cámara frontal o la cámara trasera

int frontCameraImageOrientation = UIImageOrientationLeftMirrored; int backCameraImageOrientation = UIImageOrientationRight; UIImage *image = [[UIImage alloc] initWithCGImage:newImage scale:(CGFloat)1.0 orientation:frontCameraImageOrientation];


Puedes cambiar la orientación de video, de esta manera obtienes una imagen correcta

connection.videoOrientation = AVCaptureVideoOrientationPortrait

Porque por defecto la orientación del video no es retrato.