回答
你可以使用uiimagepickercontroller來達到這個目的。首先,導入MobileCoreServices.framework。然後拉起相機:
if([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera]) {
NSArray *media = [UIImagePickerController
availableMediaTypesForSourceType: UIImagePickerControllerSourceTypeCamera];
if ([media containsObject:(NSString*)kUTTypeImage] == YES) {
UIImagePickerController *picker = [[UIImagePickerController alloc] init];
picker.sourceType = UIImagePickerControllerSourceTypeCamera;
//picker.cameraCaptureMode = UIImagePickerControllerCameraCaptureModePhoto;
[picker setMediaTypes:[NSArray arrayWithObject:(NSString *)kUTTypeImage]];
picker.delegate = self;
[self presentModalViewController:picker animated:YES];
//[picker release];
}
else {
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Unsupported!"
message:@"Camera does not support photo capturing."
delegate:nil
cancelButtonTitle:@"OK"
otherButtonTitles:nil];
[alert show];
[alert release];
}
}
else {
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Unavailable!"
message:@"This device does not have a camera."
delegate:nil
cancelButtonTitle:@"OK"
otherButtonTitles:nil];
[alert show];
[alert release];
}
然後,通過實施uiimagepickercontrollerdelegate保存照片和保存功能:
- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info {
NSLog(@"Media Info: %@", info);
NSString *mediaType = [info valueForKey:UIImagePickerControllerMediaType];
if([mediaType isEqualToString:(NSString*)kUTTypeImage]) {
UIImage *photoTaken = [info objectForKey:@"UIImagePickerControllerOriginalImage"];
//Save Photo to library only if it wasnt already saved i.e. its just been taken
if (picker.sourceType == UIImagePickerControllerSourceTypeCamera) {
UIImageWriteToSavedPhotosAlbum(photoTaken, self, @selector(image:didFinishSavingWithError:contextInfo:), nil);
}
}
[picker dismissModalViewControllerAnimated:YES];
[picker release];
}
- (void)image:(UIImage *)image didFinishSavingWithError:(NSError *)error contextInfo:(void *)contextInfo {
UIAlertView *alert;
//NSLog(@"Image:%@", image);
if (error) {
alert = [[UIAlertView alloc] initWithTitle:@"Error!"
message:[error localizedDescription]
delegate:nil
cancelButtonTitle:@"OK"
otherButtonTitles:nil];
[alert show];
[alert release];
}
}
- (void)imagePickerControllerDidCancel:(UIImagePickerController *)picker {
[picker dismissModalViewControllerAnimated:YES];
}
圖像更多信息:didFinishSaving ....可以在這裏找到
也可以看看這個帖子
https://stackoverflow.com/questions/1282830/uiimagepickercontroller-uiimage-memory-and-more
這對我來說是正確的工作..我捕獲的圖像正在成功保存到設備庫,但我想知道是否有可能將圖像保存在畫廊的特定文件夾(如新專輯)?謝謝 –
它是不可能在模擬器中。您必須使用該設備。
我希望你意識到模擬器沒有相機.....所以我猜這是不可能的。你絕對可以使用一個設備....你可以使用UIImagePickerController捕捉圖像。
有3個prerequesites拍照編程需要:
的裝置需要具有由
照相機檢查if ([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera])
相機控制需要被隱藏(選擇器是一個的UIImagePickerController )
picker.showsCameraControls = NO;
使用takePi來自UIImagePickerController
[picker takePicture];
附註,因爲它確實讓我誤了幾分鐘,takePicture方法也會關閉視圖。
還張貼在這裏Other Stack answer
- 1. 從相機拍攝照片
- 2. 拍攝照片並保存在SD卡或相機相冊PHONEGAP
- 3. 拍攝照片,不保存
- 4. 拍攝照片不保存
- 5. 相機拍攝照片在Android臨時保存圖片?
- 6. 拍攝照片並保存到/ data/data
- 7. 如何保存拍攝的照片
- 8. android中的java.lang.OutOfMemoryError保存從相機拍攝的照片
- 9. 如何從iPhone設備照片庫中的相機中保存拍攝圖像?
- 10. 如何從照相機拍攝的照片製作縮略圖?
- 11. 保存視頻到相機拍攝的照片庫
- 12. Phonegap相機API保存拍攝到相機膠捲的照片
- 13. 關於相機方向的變化,照片未拍攝/保存
- 14. iPhone:以突發模式以編程方式拍攝照片
- 15. 當我從圖庫中選擇照片或從相機拍攝照片時,我的照片正在旋轉?
- 16. 如何從相機拍照並在android應用程序中添加照片庫?
- 17. 從Galley和照相機拍攝照片在Tamarin.forms
- 18. 如何將照相機拍攝的照片存儲在內存中?
- 19. 避免畫廊保存在Android的相機拍攝的照片
- 20. 使用UIViewController(MonoTouch)相機拍攝照片
- 21. 相機照片拍攝失敗
- 22. IntentFilter相機和拍攝的照片
- 23. 的Android相機拍攝多張照片
- 24. 拍攝來自相機的照片
- 25. Monodroid使用相機拍攝照片
- 26. 如何檢測照片是否被拍攝(照相機意圖)
- 27. 如何創建拍攝照片的功能拍攝+保存
- 28. 應用程序拍攝的照片不保存在圖庫中
- 29. Android - 從相機拍攝照片並將其保存到內部存儲
- 30. 如何從默認相機拍攝照片並在我的應用程序中使用此照片?
一個更完整的答案拍照從相機無法在模擬器,你必須使用設備來測試你的代碼。 –