0

カメラを使ったアプリケーションを開発しています。ギャラリーから写真を閲覧するために閲覧オプションを使用しています。必要に応じて写真を撮るオプションも提示しています。ブラウジング中に選択した写真を取得するために、UIImagePickerControllerDelegateメソッドを実装しました。

- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingImage:(UIImage *)img editingInfo:(NSDictionary *)editInfo 
 {
      [self dismissModalViewControllerAnimated:YES];
      imageView.image = img;    
  }

このメソッドで選択した画像を取得しています。しかし、ギャラリーに保存せずに、imageViewでカメラによってキャプチャされた画像を取得するにはどうすればよいですか?同じ方法で画像を取得できますか?

4

3 に答える 3

2

を使用してimagePickerController:didFinishPickingImage:editingInfo:います。これは、iOS3.0では非推奨です。UIImagePickerControllerDelegateを参照してください。非推奨のメソッドを使用しない理由についてもこのリンクを参照してください。

次のように使用する必要がありimagePickerController:didFinishPickingMediaWithInfo:ます。

- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info

{
     yourImageView.image = [info objectForKey:@"UIImagePickerControllerOriginalImage"];
     [self dismissModalViewControllerAnimated:YES];
}

これは、カメラとフォトギャラリーの両方で機能します。また、カメラを使用してキャプチャした画像を保存する必要はありません。このコードのように、画像ビューに直接割り当てることができます。

これがお役に立てば幸いです。

于 2012-08-07T06:04:52.050 に答える
1

これは簡単です、あなたはただあなたにUIImageまっすぐに渡す必要がありますUIImageView

 yourImageView.image = img;
于 2012-08-07T05:53:58.737 に答える
0

これを試してください:

- (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) {
        yourImageView.image = img }
}
[self dismissModalViewControllerAnimated:YES];
}
于 2012-08-07T06:01:06.720 に答える