2016-02-26 154 views

回答

0

您的代碼檢查設備上的可用攝像頭。你需要做的是讀取圖片的元數據,你拍攝的照片後,將包括相機上的信息。

使用此解決方案來讀取自帶的圖像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

你將不得不解析出的 「前」 或 「後」 份串。

依靠解析某個字符串解析出來的內容會引發一些紅旗 - 這可能是一種更好,更穩定的方法。

+0

我認爲這只是一個示例代碼。不需要塊異步調用。 –

+0

是的,這是否有效? –

+0

感謝您的回答,我執行代碼時總是發現null –

相關問題