これは、カメラから表示して保存する方法です。
-(IBAction)Camera:(id)sender{
if ([UIImagePickerController isSourceTypeAvailable:
UIImagePickerControllerSourceTypeCamera])
{
UIImagePickerController *imagePicker = [[UIImagePickerController alloc] init];
imagePicker.delegate = self;
imagePicker.sourceType = UIImagePickerControllerSourceTypeCamera;
imagePicker.mediaTypes = [NSArray arrayWithObjects: (NSString *) kUTTypeImage,nil];
imagePicker.allowsEditing = NO;
[self presentModalViewController:imagePicker animated:YES];
newMedia = YES;
}
}
-(void) imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info {
[self dismissModalViewControllerAnimated:YES];
NSString *mediaType = [info objectForKey:UIImagePickerControllerMediaType];
if ([mediaType isEqualToString:(NSString *)kUTTypeImage]) {
UIImage *image = [self scaleThenRotateImage:[info objectForKey:UIImagePickerControllerOriginalImage]];
imageView.image = image;
if (newMedia)
UIImageWriteToSavedPhotosAlbum(image, self, @selector(image:finishedSavingWithError:contextInfo:), nil);
}
else if ([mediaType isEqualToString:(NSString *)kUTTypeMovie]) {
// Code here to support video if enabled
}
}
ALAsset
しかし、問題は、複数選択して選択した画像にチェックマークを表示できるピッカーを使用していることです。
たとえば、カメラから写真を撮り(上記のコードを使用)、カメラロールに移動して で画像(複数/単一)を選択するとimageTaken
、ピッカーを表示してもチェックマークが表示されないため、解決策は、/with で保存する必要があることALAsset
です。
これを変更する必要があります:
UIImagePickerControllerOriginalImage
に
UIImagePickerControllerMediaMetadata
または私は何をすべきか/変更する必要がありますか?答えてくれてありがとう。