0

我的应用程序具有从相机胶卷中挑选图像并单击新图像然后上传的功能。当我从相机胶卷中选择现有图像时,它会给我一个像asset.jpg这样的图像名称(这是我想要的),但是当我点击我的新图像时,它会返回一个内存位置而不是图像的名称(例如资产.jpg)。为了将名称命名为asset.jpg,我必须首先使用将图像存储到相机胶卷

if (picker.sourceType == UIImagePickerControllerSourceTypeCamera)
        {
            UIImageWriteToSavedPhotosAlbum(image, self, @selector(image:didFinishSavingWithError:contextInfo:), nil);
            //UIImageWriteToSavedPhotosAlbum(image, nil, nil, nil);
            [self.imageView setImage:nil];
        }

我不想。无论如何,我可以将图像名称作为asset.jpg 获取新单击的图像,而无需先将图像保存到相机胶卷。提前致谢。

编辑

UIImagePickerControllerReferenceURL 在从相机胶卷中选择现有图像的情况下提供 URL,但返回新单击图像的临时内存位置

4

1 回答 1

0

保存照片时会提供资产名称,因此您需要这样做。我使用以下代码保存图像并获取其路径。

   ALAssetsLibrary* library = [[ALAssetsLibrary alloc] init];
        // Request to save the image to camera roll
    [library writeImageToSavedPhotosAlbum:[image CGImage] orientation:(ALAssetOrientation)[image imageOrientation]completionBlock:^(NSURL *assetClickedURL, NSError *error){
        if (error) {
            NSLog(@"error saving image %@", [error localizedDescription]);
        } else
        {

            NSLog(@"image from camera saved at  %@", assetClickedURL);
            [self uploadImageAtassetURL:assetClickedURL];
        }
    }];
于 2013-02-07T06:13:16.483 回答