1

ライブラリから選択した、または新しくクリックした画像の名前を取得したい -

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

私はこのコードを使用しています:

-(void) imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info
{
    if ([UIImagePickerController isSourceTypeAvailable: UIImagePickerControllerSourceTypeSavedPhotosAlbum])
    {
        AppDelegate *del = [[UIApplication sharedApplication]delegate];
        [self dismissModalViewControllerAnimated:YES];
        image = [info objectForKey:UIImagePickerControllerOriginalImage];

        NSLog(@"imagekbgfg=====>%@",image);
        [self.imageView setImage:image];

        imgName = [info objectForKey:UIImagePickerControllerOriginalImage];

        del.mainImgName = imgName;
        del.imageData = UIImageJPEGRepresentation(image, 1.0);
        del.imageApp = image;
    }

    if ([UIImagePickerController isSourceTypeAvailable: UIImagePickerControllerSourceTypeCamera])
    {
       image = [info objectForKey:UIImagePickerControllerOriginalImage];
    }
}

これどうやってするの?

4

3 に答える 3

6

次のコードを使用すると、次のようなパスが得られますassets-library://asset/asset.JPG?id=79450962-C0FD-484C-808B-83E045F40972&ext=JPG。フォトアルバムから画像を選択するとき。このパスは有効です。アセットIDとアセットタイプが含まれています。

// Firstly get the picked image's file URL.
NSURL *imageFileURL = [info objectForKey:UIImagePickerControllerReferenceURL];

// Then get the file name.
NSString *imageName = [imageFileURL lastPathComponent];
NSLog(@"image name is %@", imageName);

使用するパスを使用して画像ユーザーを再度選択する場合UIImagePickerController(ここでは、パスを保存して、ユーザーにその画像を再度選択するように要求せずにその画像を読み戻すことができるようにします)ALAssetsLibraryそれ以外の場合は必要ありません。必要ありません。

ALAssetsLibrary *library = [[ALAssetsLibrary alloc] init];
__block UIImage *returnValue = nil;
[library assetForURL:imageFileURL resultBlock:^(ALAsset *asset) {
    returnValue = [UIImage imageWithCGImage:[[asset defaultRepresentation] fullResolutionImage]];
} failureBlock:^(NSError *error) {
    NSLog(@"error : %@", error);
}];
于 2012-11-22T12:05:18.973 に答える
0

UIImagePickerControllerDelegateプロトコルを見てください。文字列UIImagePickerControllerReferenceURLには、ファイルのURLが含まれています。これを使用して、ファイル名を作成できます。

それ以外に、UIImageまたはUIImageViewオブジェクトからファイル名を取得する組み込みの方法はないようです。

参照: Stackoverflowの回答

于 2012-11-22T12:07:34.790 に答える