Я разрабатываю приложение, в котором используется камера телефона, и я использую значение яркости, предоставляемое этим фрагментом кода, для выполнения некоторых действий:
- (CGFloat)getBrightnessValue:(CMSampleBufferRef)sampleBuffer {
CFDictionaryRef metadataDict = CMCopyDictionaryOfAttachments(NULL, sampleBuffer, kCMAttachmentMode_ShouldPropagate);
NSDictionary *metadata = [[NSMutableDictionary alloc] initWithDictionary:(__bridge NSDictionary*)metadataDict];
CFRelease(metadataDict);
NSDictionary *exifMetadata = [[metadata objectForKey:(NSString *)kCGImagePropertyExifDictionary] mutableCopy];
return [[exifMetadata objectForKey:(NSString *)kCGImagePropertyExifBrightnessValue] floatValue];
}
sampleBuffer предоставляется этим методом:
- (void)captureOutput:(AVCaptureOutput *)captureOutput didOutputSampleBuffer:(CMSampleBufferRef)sampleBuffer fromConnection:(AVCaptureConnection *)connection
Я исследовал и прочитал, что максимальное и минимальное значение этой яркости составляет -99 и 99, но я думаю, что это "теоретически", потому что, например, в моемiPhone XI не может получить меньше, чем -10 и 10, или что-то в этом роде.Вопрос в том, знаете ли вы, есть ли способ получить процент, который указывает на это значение?Я имею в виду, что яркость на этом изображении составляет 70%, потому что это не зависит от камеры и очень полезно для меня :) Спасибо!