我知道这不是一个好问题,但我被困住了。如何检测用户何时从库中而不是从相机中选择图像,并且此库图像通过前置摄像头或后置摄像头保存?喜欢
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
您必须解析出字符串的"前面"或"后面"部分。
依靠解析从字符串中解析出来的东西会引发一些危险信号——可能有一种更好、更稳定的方法。