ios 通过调用系统摄像头拍照,…

如果您的App里需要获得由系统自带的照相机、摄像机和录音软件所生成的文件。可以借鉴以下代码来调用iPhone摄像头拍照或者摄像的功能,并把获得的数据直接写入到文件。 

如果您的App里需要获得由系统自带的照相机、摄像机和录音软件所生成的文件。可以借鉴以下代码来调用iPhone摄像头拍照或者摄像的功能,并把获得的数据直接写入到文件。

http://www.oschina.net/question/54100_34016。

//这一段是,点击一个takePicture按钮的操作.

 

 


- (IBAction)takePicture:(id)sender {
  
UIImagePickerController *picker = [[UIImagePickerController alloc] init];
  
if ([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera]) {
picker.sourceType = UIImagePickerControllerSourceTypeCamera;
NSArray *temp_MediaTypes = [UIImagePickerController availableMediaTypesForSourceType:picker.sourceType];
picker.mediaTypes = temp_MediaTypes;
picker.delegate = self;
picker.allowsImageEditing = YES;
}
  
[self presentModalViewController:picker animated:YES];
[picker release];
  
}
     - ( void )imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info
     {
      
     NSString *mediaType = [info objectForKey:UIImagePickerControllerMediaType];
      
     BOOL success;
     NSFileManager *fileManager = [NSFileManager defaultManager];
     NSError *error;
      
     NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
     NSString *documentsDirectory = [paths objectAtIndex:0];
      
     if ([mediaType isEqualToString:@ "public.image" ]){
      
     UIImage *image = [info objectForKey:@ "UIImagePickerControllerEditedImage" ];
   NSLog(@“found an image”);
      
     NSString *imageFile = [documentsDirectory stringByAppendingPathComponent:@ "temp.jpg" ];
   NSLog(@“%@”, ,imageFile);
      
     success = [fileManager fileExistsAtPath:imageFile];
     if (success) {
     success = [fileManager removeItemAtPath:imageFile error:>error];
     }
      
     imageView.image = image;
     [UIImageJPEGRepresentation(image, 1.0f) writeToFile:imageFile atomically:YES];
      
     //SETIMAGE(image);
     //CFShow([[NSFileManager defaultManager] directoryContentsAtPath:[NSHomeDirectory() stringByAppendingString:@"/Documents"]]);
   }
     else if ([mediaType isEqualToString:@ "public.movie" ]){
     NSURL *videoURL = [info objectForKey:UIImagePickerControllerMediaURL];
     NSLog(@“%@”, ,videoURL);
     NSLog(@“found a video”);
     NSData *videoData = [NSData dataWithContentsOfURL:videoURL];
      
    
      
     NSString *videoFile = [documentsDirectory stringByAppendingPathComponent:@ "temp.mov" ];
   NSLog(@“%@”, ,videoFile);
      
     success = [fileManager fileExistsAtPath:videoFile];
     if (success) {
     success = [fileManager removeItemAtPath:videoFile error:>error];
     }
     [videoData writeToFile:videoFile atomically:YES];
     //CFShow([[NSFileManager defaultManager] directoryContentsAtPath:[NSHomeDirectory() stringByAppendingString:@"/Documents"]]);
   //NSLog(videoURL);
     }
     [picker dismissModalViewControllerAnimated:YES];
     }
      
     - ( void )imagePickerControllerDidCancel:(UIImagePickerController *)picker {
      
     [picker dismissModalViewControllerAnimated:YES];
      
     }

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值