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 に答える