我与斯威夫特3一起工作,我使用相机AVFoundation如何从AVFoundation获取光照值?
谁知道有什么办法来知道光的能力?
我知道的方法之一是利用环境光传感器,但它是不鼓励,最终Apps不会允许市场
我发现的问题非常接近,我需要
detecting if iPhone is in a dark room
这家伙解释说,我可以用ImageIO framework, read the metadata that's coming in with each frame of the video feed
- (void)captureOutput:(AVCaptureOutput *)captureOutput
didOutputSampleBuffer:(CMSampleBufferRef)sampleBuffer
fromConnection:(AVCaptureConnection *)connection
{
CFDictionaryRef metadataDict = CMCopyDictionaryOfAttachments(NULL,
sampleBuffer, kCMAttachmentMode_ShouldPropagate);
NSDictionary *metadata = [[NSMutableDictionary alloc]
initWithDictionary:(__bridge NSDictionary*)metadataDict];
CFRelease(metadataDict);
NSDictionary *exifMetadata = [[metadata
objectForKey:(NSString *)kCGImagePropertyExifDictionary] mutableCopy];
float brightnessValue = [[exifMetadata
objectForKey:(NSString *)kCGImagePropertyExifBrightnessValue] floatValue];
}
但我在的iOS新秀并不知道如何转换此代码在斯威夫特
在此先感谢!
有一些问题:AVCaptureStillImageOutput已被弃用,另一方面,这个方法'AVCaptureStillImageOutput.jpegStillImageNSDataRepresentation(sampleBuffer)'返回'数据',但这种方法'getEXIFFromImage(image:NSData)'需要获得'NSData' ...什么你认为? –
无论如何还有一个问题......如果我尝试通过键'kCGImagePropertyExifBrightnessValue'获取值,我会得到'nil' ...你知道为什么吗? –