【问题标题】:what is the filename when saving image using UIImageWriteToSavedPhotosAlbum使用 UIImageWriteToSavedPhotosAlbum 保存图像时的文件名是什么
【发布时间】:2013-02-21 10:54:09
【问题描述】:

我正在创建应用程序,我正在拍照或通过 lib 添加并将相同的图像保存在服务器上。

以下是我所拥有的

#pragma mark - UIImagePickerControllerDelegate

- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info
{
    photoTaken = @"YES";
    btnImage = [info objectForKey:UIImagePickerControllerEditedImage];
    [btnImage setAccessibilityIdentifier:@"newImage"] ;
    [self.takePhoto setImage:btnImage forState:UIControlStateNormal];
    UIImageWriteToSavedPhotosAlbum(btnImage, nil, nil, nil);
    [self.navigationController dismissViewControllerAnimated:YES completion:nil];
}

我正在使用代码UIImageWriteToSavedPhotosAlbum(btnImage, nil, nil, nil); 在 iPhone 上保存图像,因为根据this question answer,如果我想在服务器上保存图像,我需要文件名。

因此我想知道在使用UIImageWriteToSavedPhotosAlbum 时如何提供文件名。

感谢任何想法/建议。

为什么我想要图像名称是因为我需要按照上面的链接答案提供该图像名称。


编辑 1

否则,请告诉我如何使用某个名称(使用其他公式)保存图像,以便我可以将该图像用于我的应用程序。


编辑 2

我在下面尝试过。还是不行。

- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info
{
    photoTaken = @"YES";
    btnImage = [info objectForKey:UIImagePickerControllerEditedImage];
    [btnImage setAccessibilityIdentifier:@"newImage"] ;
    [self.takePhoto setImage:btnImage forState:UIControlStateNormal];

    NSData *data = UIImagePNGRepresentation(btnImage);
    [data writeToFile:@"http://www.mysite.com/sama/myImages/newImage.png" atomically:YES];
    // I tried below also (thinking it will save on local)
    // [data writeToFile:@"newImage.png" atomically:YES];

    [self.navigationController dismissViewControllerAnimated:YES completion:nil];
}

【问题讨论】:

    标签: objective-c image ios6 uiimage


    【解决方案1】:

    从 btnImage 在内存中构建 NSData...

    NSData *data = UIImagePNGRepresentation(btnImage);
    

    然后将其设为您的帖子数据。

    您也可以写入该数据并稍后上传...

    [data writeToFile:@"any_file_you_want_int_temp_dir" atomically:YES];
    

    【讨论】:

    • 正确 - 这行不通。你需要创建一个 NSURLConnection 来发起网络请求。以这种方式写入文件只会在本地写入。见zcentric.com/2008/08/29/post-a-uiimage-to-the-web 发帖(虽然最后要小心。那个博主建议同步发帖,还有更好的异步方法)。
    • 本地写作见这里:stackoverflow.com/questions/1567134/…。除非图像是用户生成的(并且需要 iCloud 备份),否则 NS 缓存目录可能是更好的选择。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-05-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-07
    • 2022-06-12
    • 1970-01-01
    相关资源
    最近更新 更多