4

iPhoneデバイスのギャラリーから画像を選択するために画像ピッカーを使用しています。ギャラリーにあるのと同じ名前でそれらの画像を保存する必要があります。画像を選んだ後、別の名前を付けたくありません。画像を選んだ後、情報辞書を印刷してみました。それは画像、URL、パスとタイプを与えます..しかし、画像の実際の名前を取得する方法は任意です。以下は私がdidFinishで取得したものです

- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info 
{
NSLog(@"Selected image info: %@",info);

}

このプリント

Selected image info : (
        {
        UIImagePickerControllerMediaType = "public.image";
        UIImagePickerControllerOriginalImage = "<UIImage: 0x617d390>";
        UIImagePickerControllerReferenceURL = "assets-library://asset/asset.JPG?id=1000000089&ext=JPG";
        }
)

私の質問は、上記から実際の名前を取得する方法です。

4

3 に答える 3

5

AssetsLibraryフレームワークを使用すると、情報ディクショナリからreferenceURLを取得し、アセットを取得できます。このようなもの:

NSURL *assetURL = [info objectForKey:UIImagePickerControllerReferenceURL];

__block NSString *fileName = nil;

ALAssetsLibrary *library = [[[ALAssetsLibrary alloc] init] autorelease];
[library assetForURL:assetURL resultBlock:^(ALAsset *asset)  {
    fileName = asset.defaultRepresentation.fileName;
} failureBlock:nil];
于 2012-06-27T09:54:51.910 に答える
4

ギャラリーから選択した画像。「名前」は使用しないでください。カメラからキャプチャしたばかりの写真に名前を付けることは決してありません。iTunesを介して画像を追加した場合でも、元のファイル名は削除され、iTunesが同期のために理解できるファイル名に置き換えられます。

これらのファイル名は、将来の同期で他の画像に置き換えられる可能性があるため、プログラマーがアクセスするためのものではありません。

これについての良いラウンドは、ギャラリーから選択した画像に保存しながら、現在の日付をファイル名として割り当てることです。ドキュメントまたはライブラリディレクトリに保存し、マッピングPListファイルを使用して画像をファイル名にマッピングできます。

または、ファイル名として一意の番号を割り当て、これらの値を使用して画像にアクセスすることもできます。

新しい名前を付けたくないとおっしゃっていましたが、残念ながら、それが唯一の方法です。

于 2012-06-27T10:32:51.940 に答える
0

名前はないと思います。私がアプリケーションで使用したのはNSDate、名前として(現在の日付)を付けて保存することでした。

于 2012-06-27T09:43:54.293 に答える