2013-01-23 2 views
2

UIImagePickerView 컨트롤러를 사용하여 내 응용 프로그램의 iPhone 기본 카메라에서 사진을 찍습니다. 프로세스를 완료하는 데 오랜 시간이 걸립니다. 당신이 우는 방법 같은 기본 카메라에서 이미지를 캡처 할 수 있습니다기본 카메라로 사진 찍기

UIImagePickerController *imagePicker = [[UIImagePickerController alloc] init]; 

imagePicker.sourceType = UIImagePickerControllerSourceTypeCamera; 

imagePicker.delegate = self; 

[self presentViewController:imagePicker animated:YES completion:nil]; 
+1

당신이있어 난 내 코드를 CH3OH – Shmidt

+0

@flink를 코드를 붙여 넣어야 그것을 확인하십시오 – user2003416

답변

2

다음 행을 시도 -

-(IBAction)cameraLibraryButtonClick:(id)sender{ 


    if([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera]){ 

       imagePicker.sourceType = UIImagePickerControllerSourceTypeCamera; 
       imagePicker.mediaTypes = [NSArray arrayWithObjects:(NSString *)kUTTypeImage , nil]; 
       imagePicker.allowsEditing = NO; 

       [self presentModalViewController:imagePicker animated:YES]; 

       newMedia = YES; 
      } 
      else 
      { 
       [self displaysorceError]; 
      } 


} 

-(void)displaysorceError{ 
    UIAlertView *alt = [[UIAlertView alloc] 
         initWithTitle:@"Error" 
         message:@"Camera Image Sorce Not Available" 
         delegate:nil cancelButtonTitle:@"OK" 
         otherButtonTitles:nil]; 
    [alt show]; 
    [alt release]; 
} 

- (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]; 
    } 

} 
+0

내가 초상화 view.what에서 사진을 찍을 경우 lanscape보기에 표시됩니다 – user2003416

+0

당신은 .h 파일에 UIImagepicker의 대리인을 선언합니까? – Vishal

+0

yes.i는 .h 파일에서 decalare를 수행했습니다. – user2003416

1

:

-(IBAction)takePhoto:(id)sender 
{ 
    if ([UIImagePickerController isSourceTypeAvailable: UIImagePickerControllerSourceTypeCamera]) 
    { 
     imgPicker.sourceType = UIImagePickerControllerSourceTypeCamera; 
     [self presentModalViewController:imgPicker animated:YES]; 
    } 
} 

-(void) imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info 
{ 
    UIImage *pickedImage = [info objectForKey:UIImagePickerControllerOriginalImage];  
    [self dismissModalViewControllerAnimated:YES]; 

    NSData *imageData = UIImagePNGRepresentation(pickedImage); 
    path = [SAVEDIMAGE_DIR stringByAppendingPathComponent:@"image.png"]; 
    [imageData writeToFile:path atomically:YES]; 
    [tableview reloadData]; 
} 
관련 문제