Изменить ориентацию видео или изображения на портрет с помощью AVCam
Я использую исходный код Apple AVCam для создания пользовательской камеры, она работает как шарм, проблема в том, что когда я сделал снимок или видео с ним, а затем поместил его в библиотеку фотографий, его ориентация изменилась на альбомную (даже я сделал снимок). это в портретной ориентации). Я много искал для этого, но не мог найти способ для этого. Любая помощь?
Для заметки, мое приложение поддерживает только портрет, а захватывать следует только в портретном.
Обновить:
AVCaptureConnection *captureConnection = ...
if ([captureConnection isVideoOrientationSupported])
{
AVCaptureVideoOrientation orientation = AVCaptureVideoOrientationPortrait;
[captureConnection setVideoOrientation:orientation];
}
Это не работает
1 ответ
Для захвата изображения вы должны установить ориентацию тоже. Когда вы сохраняете образ на диск, вы должны использовать
writeImageToSavedPhotosAlbum:orientation:completionBlock:
там же установите правильный параметр "ориентация".
Использование: https://developer.apple.com/library/ios/documentation/AssetsLibrary/Reference/ALAssetsLibrary_Class/index.html:
Пример с целью C:
// Flash set to Auto for Still Capture
[CameraViewController setFlashMode:AVCaptureFlashModeAuto
forDevice:[[self videoDeviceInput] device]];
// Capture a still image.
[[self stillImageOutput] captureStillImageAsynchronouslyFromConnection:[[self stillImageOutput] connectionWithMediaType:AVMediaTypeVideo]
completionHandler:^(CMSampleBufferRef imageDataSampleBuffer, NSError *error) {
if (imageDataSampleBuffer) {
self.imageData = [AVCaptureStillImageOutput jpegStillImageNSDataRepresentation:imageDataSampleBuffer];
[[[ALAssetsLibrary alloc] init] writeImageToSavedPhotosAlbum:image.CGImage
orientation:(ALAssetOrientation)[image imageOrientation]
completionBlock:^(NSURL *assetURL, NSError *error) {
if(error == nil) {
NSLog(@"PHOTO SAVED - assetURL: %@", assetURL);
} else {
NSLog(@"ERROR : %@",error);
}
}];