0
我知道它不是一個好問題,但我被卡住了。我如何檢測用戶從庫中選取圖像而不是從相機中取出圖像,並通過前置相機或後置相機保存此庫圖像?像我如何檢測庫圖像是來自前置攝像頭還是後置攝像頭
if (library image from front camera)
{
// Do something here
}
else {
// Do something here
}
我知道它不是一個好問題,但我被卡住了。我如何檢測用戶從庫中選取圖像而不是從相機中取出圖像,並通過前置相機或後置相機保存此庫圖像?像我如何檢測庫圖像是來自前置攝像頭還是後置攝像頭
if (library image from front camera)
{
// Do something here
}
else {
// Do something here
}
您的代碼檢查設備上的可用攝像頭。你需要做的是讀取圖片的元數據,你拍攝的照片後,將包括相機上的信息。
使用此解決方案來讀取自帶的圖像Exif數據,以找出哪些相機獲得它:Exif Data from Image
可以在信息詞典檢查圖像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.15毫米F/2.2
你將不得不解析出的 「前」 或 「後」 份串。
依靠解析某個字符串解析出來的內容會引發一些紅旗 - 這可能是一種更好,更穩定的方法。
我認爲這只是一個示例代碼。不需要塊異步調用。 –
是的,這是否有效? –
感謝您的回答,我執行代碼時總是發現null –