2011년 5월 2일 월요일

[iOS] UIImagePickerController 로 라이브러리에서 사진 선택하기

사진을 라이브러리(사진첩) 에서 고르는 화면은 기본적으로 iOS에서 ImagePicker 라는 이름으로 제공된다. 다음 코드는 이 이미지피커를 띄우는 코드다.

UIImagePickerController *picker;

picker = [[UIImagePickerController alloc] init];
[picker setDelegate:self];

picker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;

[self presentModalViewController:picker animated:YES];
sourceType 을 UIImagePickerControllerSourceTypeCamera로 설정하면 사진을 바로 찍어서도 가져올 수 있는 것 같다. (안해봄 -_-;;)

사진을 고르거나 취소했을 때 호출되는 딜리게이트도 필요하다.
- (void)imagePickerControllerDidCancel:(UIImagePickerController *)picker {
  [[picker parentViewController] dismissModalViewControllerAnimated:YES];
  [picker release];
}
취소되면 그냥 모달모드로 뛰운 이미지피커 뷰만 숨기고 끝내면 되겠지.

사진을 선택했을 경우의 딜리게이트는 이런 형태다.
- (void)imagePickerController:(UIImagePickerController *)picker
didFinishPickingMediaWithInfo:(NSDictionary *)info {
  UIImage *image = [info objectForKey:UIImagePickerControllerOriginalImage];
  [[picker parentViewController] dismissModalViewControllerAnimated:YES];
  [picker release];
}
UIImage형태로 가져왔으니 적절히 처리하면 되겠다.

참고로 ImagePicker의 딜리게이트로 등록하는 오브젝트는 UINavigationControllerDelegateUIImagePickerControllerDelegate 프로토콜을 구현해야 한다. 경고(warnning)가 찝찝하다면 클래스 선언에서 적당히 선언해 주자.

댓글 없음 :