• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

ios - 如何从服务器获取多个图像并保存并在 iPhone 应用程序中显示它们?

[复制链接]
菜鸟教程小白 发表于 2022-12-13 11:40:07 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题

我正在使用以下代码获取单个图像。但是,如何处理多张图片呢?

这是我的代码:

-(void)viewDidLoad 
{

 [super viewDidLoad];

[self performSelectorInBackgroundselector(loadImageIntoMemory) withObject:nil];

}

-(void)loadImageIntoMemory {

    NSLog(@"Beginning download");
    NSString *temp_Image_String = [[NSString alloc] initWithFormat"http://www.thewavestore.com/appproductimage/"];
    NSURL *url_For_Ad_Image = [[NSURL alloc] initWithString:temp_Image_String];
    NSData *data_For_Ad_Image = [[NSData alloc] initWithContentsOfURL:url_For_Ad_Image];
    UIImage *temp_Ad_Image = [[UIImage alloc] initWithData:data_For_Ad_Image];
    [self saveImage:temp_Ad_Image];
    UIImageView *imageViewForAdImages = [[UIImageView alloc] init];
    imageViewForAdImages.frame = CGRectMake(0, 0, 320, 480);
    imageView.image = [self loadImage];
    [self.view addSubview:imageView];
}

-(void)saveImageUIImage *)image {

    NSLog(@"Saving");
    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
    NSString *documentsDirectory = [paths objectAtIndex:0];
    NSString* path = [documentsDirectory stringByAppendingPathComponent: @"DSC02077129HT41.5W20L24WT18.555RS28775.jpg" ];
    NSData* data = UIImagePNGRepresentation(image);
    [data writeToFile:path atomically:YES];
}

-(UIImage *)loadImage {

    NSLog(@"Got the data!");
    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
    NSString *documentsDirectory = [paths objectAtIndex:0];
    NSString* path = [documentsDirectory stringByAppendingPathComponent"DSC02077129HT41.5W20L24WT18.555RS28775.jpg" ];
    UIImage* image = [UIImage imageWithContentsOfFile:path];
    return image;
}

请帮助解决这个问题,如果有任何好主意,请建议我。



Best Answer-推荐答案


首先使用唯一名称保存您的图像(我使用当前时间)并将这些名称保存到数组中

NSData *imageData = UIImagePNGRepresentation(chosenImage);
    NSArray *paths = NSSearchPathForDirectoriesInDomains
    (NSDocumentDirectory, NSUserDomainMask, YES);
    NSString *documentsDirectory = [paths objectAtIndex:0];
    NSDateFormatter *dateFormatter=[[NSDateFormatter alloc] init];
    [dateFormatter setDateFormat"yyyy-MM-dd hh:mm:ss"];
    // save image with currentdate and time in the name
    NSString * imageName = [NSString stringWithFormat"name_%@.png",[dateFormatter stringFromDate:[NSDate date]]];
    NSString *fullPathToFile = [documentsDirectory stringByAppendingPathComponent:imageName];
    //add all the images names to the imagepath array
    [imagePathArray addObject:imageName];
    //write image into file
    [imageData writeToFile:fullPathToFile atomically:YES];

然后从图像路径数组中检索图像

 for (NSString*path in imagePathArray ) {

            NSArray *filepart = [path componentsSeparatedByString"."];
            NSString *filename = [filepart objectAtIndex:0];
            NSString *extension = [filepart objectAtIndex:1];

            NSArray *paths = NSSearchPathForDirectoriesInDomains
            (NSDocumentDirectory, NSUserDomainMask, YES);
            NSString *documentsDirectory = [paths objectAtIndex:0];
            NSString *fileName = [NSString stringWithFormat"%@/%@",
                                  documentsDirectory,path];

            //NSString *filePath = [[NSBundle mainBundle] pathForResource:filename ofType:extension];
            NSData *fileData = [NSData dataWithContentsOfFile:fileName];
}

关于ios - 如何从服务器获取多个图像并保存并在 iPhone 应用程序中显示它们?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33582365/

回复

使用道具 举报

懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注0

粉丝2

帖子830918

发布主题
阅读排行 更多
广告位

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap