0

キャプチャした画像のデバイス上のパスを取得するには? 私は画像を表示していますが、下にはスイッチがあり、オフのときはプロジェクトのデフォルトの画像を表示し、オンのときはユーザーがキャプチャした画像を表示します。キャプチャ機能では、画像をimageViewに設定できます

#pragma mark - UIImagePickerControllerDelegate
- (void)imagePickerController:(UIImagePickerController *)picker
didFinishPickingMediaWithInfo:(NSDictionary *)info
{
    [self dismissViewControllerAnimated:YES completion:NULL];
    NSLog(@"%@", info);
    UIImage * imageTemp = [info objectForKey:UIImagePickerControllerEditedImage];

    if (imageTemp == nil)
        imageTemp = [info objectForKey:UIImagePickerControllerOriginalImage];
    [self.image setImage:imageTemp];
}

画像をimageviewに設定しますが、パスがありません。印刷情報があり、次のようになります

{
    UIImagePickerControllerMediaMetadata =     {
        DPIHeight = 72;
        DPIWidth = 72;
        Orientation = 6;
        "{Exif}" =         {
            ApertureValue = "2.526068811667588";
            BrightnessValue = "5.667090406070278";
            ColorSpace = 1;
            DateTimeDigitized = "2013:05:14 01:02:48";
            DateTimeOriginal = "2013:05:14 01:02:48";
            ExposureMode = 0;
            ExposureProgram = 2;
            ExposureTime = "0.008620689655172414";
            FNumber = "2.4";
            Flash = 25;
            FocalLenIn35mmFilm = 35;
            FocalLength = "4.28";
            ISOSpeedRatings =             (
                50
            );
            MeteringMode = 5;
            PixelXDimension = 3264;
            PixelYDimension = 2448;
            SceneType = 1;
            SensingMethod = 2;
            ShutterSpeedValue = "6.862622389675391";
            SubjectArea =             (
                1631,
                1223,
                881,
                881
            );
            WhiteBalance = 0;
        };
        "{TIFF}" =         {
            DateTime = "2013:05:14 01:02:48";
            Make = Apple;
            Model = "iPhone 4S";
            Software = "6.1.3";
            XResolution = 72;
            YResolution = 72;
        };
    };
    UIImagePickerControllerMediaType = "public.image";
    UIImagePickerControllerOriginalImage = "<UIImage: 0x20ac0470>";
}

しかし、パスを見つけるために使用できるものは何も見つかりません。パス o イメージを見つけて、後で同じイメージを再度リロードできるようにするにはどうすればよいですか?

4

2 に答える 2

0

この画像をアプリの後半の段階で使用する場合は、画像の URL を保存する必要があります。

画像の URL と画像名を抽出したい場合は、現在実装されているデリゲート メソッド自体で行うことができます。info には、画像に関するすべてのNSDictionary情報が含まれます。

#pragma mark - UIImagePickerControllerDelegate

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

    NSURL *imagePath = [info objectForKey:@"UIImagePickerControllerReferenceURL"];
    NSString *imageName = [imagePath lastPathComponent];
}

imagePathこの段階で内部を使用して画像を保存できますdidFinishPickingMediaWithInfo:

于 2013-05-14T03:55:57.317 に答える
0

コードから画像をキャプチャすると、iPhoneはファイルに保存しないため、キャプチャした画像へのパスを見つけることができないと思います。私の意見では、次の 2 つの方法があります。

1)UIImageを変数に記憶するためのシングルトンクラスを作成し、それにアクセスできます。

2) キャプチャした画像をキャッシュ フォルダのファイルに保存し、そのパスを取得できます。

于 2013-05-14T08:01:51.013 に答える