3

写真を撮ったり、ライブラリを介して追加したり、同じ画像をサーバーに保存したりするアプリを作成しています。

以下は私が持っているものです

#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に画像を保存しています。

したがって、使用中にファイル名を付ける方法を知りたいです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];
}
4

1 に答える 1

2

btnImage からメモリ内に NSData を構築します...

NSData *data = UIImagePNGRepresentation(btnImage);

次に、それを投稿データにします。

そのデータを書き込んで後でアップロードすることもできます...

[data writeToFile:@"any_file_you_want_int_temp_dir" atomically:YES];
于 2013-03-06T15:23:33.720 に答える