如何检测库图像来自前置摄像头或后置摄像头



我知道这不是一个好问题,但我被困住了。如何检测用户何时从库中而不是从相机中选择图像,并且此库图像通过前置摄像头或后置摄像头保存?喜欢

if (library image from front camera)
{
  // Do something here
}  
else {
 // Do something here
} 

您的代码会检查设备上是否有可用的摄像头。您需要做的是在拍照读取图像的元数据,其中包括相机上的信息。

使用此解决方案读取图像附带的 Exif 数据,以找出哪个相机获得了它: 来自图像的 Exif 数据

您可以在信息字典中检查图像 EXIF 数据UIImagePicker传入其回调。

- (IBAction) handleTakePhoto:(UIButton *)sender {
    UIImagePickerController* picker = [[UIImagePickerController alloc] init];
    picker.delegate = self;
    picker.sourceType = UIImagePickerControllerSourceTypeCamera;
    [self presentViewController:picker animated:YES completion:nil];
}
-(void) imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info {
    __block NSDictionary* metadata = [info objectForKey:UIImagePickerControllerMediaMetadata];
    dispatch_async(dispatch_get_main_queue(), ^{
        NSLog(@"%@", [metadata valueForKeyPath:@"{Exif}.LensModel"]);
        [picker dismissViewControllerAnimated:YES completion:nil];
    });
}

上面的代码片段输出

iPhone 6 Plus 后置摄像头 4.15mm f/2.2

您必须解析出字符串的"前面"或"后面"部分。

依靠解析从字符串中解析出来的东西会引发一些危险信号——可能有一种更好、更稳定的方法。

最新更新