Я играл с автофокусом и автоэкспозицией, AutoWhiteBalance и LowLightBoost, но все же могу получить изображения камеры так же яркими, как и просмотренные/снятые с помощью родной камеры iPhone 5.Как создать AVFoundation Camera Изображения, такие же яркие, как и на встроенной камере?
Не уверен, что я делаю неправильно. Ниже приведена основная функция, которая устанавливает функции автоматической камеры при нажатии экрана. Работа автофокуса. Но не уверен, что автоэкспозиция, баланс белого и LowLightBoost работают так же, как и предполагалось, потому что темные предметы не светятся, а также с родной камерой. Большая часть приведенного ниже кода взята из примера AVCam, размещенного на сайте Центра iosDev.
Заранее благодарен!
- (IBAction)focusAndExposeTap:(UIGestureRecognizer *)gestureRecognizer
{
CGPoint devicePoint = [(AVCaptureVideoPreviewLayer *)[[self previewView] layer] captureDevicePointOfInterestForPoint:[gestureRecognizer locationInView:[gestureRecognizer view]]];
[self focusWithMode:AVCaptureFocusModeAutoFocus exposeWithMode:AVCaptureExposureModeAutoExpose whiteBalanceWithMode:AVCaptureWhiteBalanceModeContinuousAutoWhiteBalance atDevicePoint:devicePoint monitorSubjectAreaChange:YES];
}
- (void)focusWithMode:(AVCaptureFocusMode)focusMode exposeWithMode:(AVCaptureExposureMode)exposureMode whiteBalanceWithMode:(AVCaptureWhiteBalanceMode)whiteBalanceMode atDevicePoint:(CGPoint)point monitorSubjectAreaChange:(BOOL)monitorSubjectAreaChange{
dispatch_async([self sessionQueue], ^{
AVCaptureDevice *device = [[self videoDeviceInput] device];
NSError *error = nil;
if ([device lockForConfiguration:&error])
{
if ([device isFocusPointOfInterestSupported] && [device isFocusModeSupported:focusMode])
{
[device setFocusMode:focusMode];
[device setFocusPointOfInterest:point];
}
NSLog(@"Pre-Exposure Mode Support?: %hhd", [device isExposurePointOfInterestSupported]);
if ([device isExposurePointOfInterestSupported] && [device isExposureModeSupported:exposureMode])
{
[device setExposureMode:exposureMode];
[device setExposurePointOfInterest:point];
}
NSLog(@"Pre-White Balance mode Support? %hhd", [device isWhiteBalanceModeSupported:whiteBalanceMode]);
if ([device isWhiteBalanceModeSupported:whiteBalanceMode])
{
[device setWhiteBalanceMode:whiteBalanceMode];
}
NSLog(@"Pre Low light mode: %hhd", [device isLowLightBoostSupported]);
if ([device isLowLightBoostSupported]){
[device setAutomaticallyEnablesLowLightBoostWhenAvailable:YES];
}
[device setSubjectAreaChangeMonitoringEnabled:monitorSubjectAreaChange];
[device unlockForConfiguration];
}
else
{
NSLog(@"%@", error);
}
});
}
вы смогли найти решение? – amone