【问题标题】:Convert a downloaded image to in-memory static image -IOS将下载的图像转换为内存中的静态图像-IOS
【发布时间】:2017-01-11 06:28:02
【问题描述】:

我的场景是这样的。在应用程序开始时,将从服务器下载图像列表,下载后所有图像都将转换为静态图像,然后将在应用程序中的任何地方使用这些静态图像。我认为在android中这个东西可以使用BITMAP来实现。 (未确认)。

目前我正在使用SDWEBIMAGE 库来下载和缓存图像。但我不想再使用这个库了。我只想一次下载所有图像,然后在任何我想添加下面的代码 sn-p 以显示下载的图像。

[ImageView setImage:[UIImage imageNamed:@"DownloadedImageName"]];

有没有办法在 ios 中完成这件事?

【问题讨论】:

    标签: ios objective-c image uiimageview


    【解决方案1】:

    您必须下载每个图像并将其保存到“文档”目录中,然后在需要时使用它。

    要将图像保存到文档目录,请使用如下代码:

    - (IBAction)saveImage:(UIImage*)img {
        NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
        NSString *documentsDirectory = [paths objectAtIndex:0];
        NSString *savedImagePath = [documentsDirectory stringByAppendingPathComponent:@"savedImage.png"];
        NSData *imageData = UIImagePNGRepresentation(img);
        [imageData writeToFile:savedImagePath atomically:NO];   
    }
    

    要在 imageview 上获取和显示图像,请使用以下代码:

    - (UIImage*)getImage 
    {
        NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,     NSUserDomainMask, YES);
        NSString *documentsDirectory = [paths objectAtIndex:0];
        NSString *getImagePath = [documentsDirectory stringByAppendingPathComponent:@"savedImage.png"];
        UIImage *img = [UIImage imageWithContentsOfFile:getImagePath];
        return img;
    }
    

    【讨论】:

      【解决方案2】:

      [UIImage imageNamed:] 方法仅用于获取您的应用程序包中已存在的图像。因此,如果您有从 Internet 下载的动态内容,则不能使用此方法。相反,创建您自己的方法来从沙箱 Documents 文件夹加载图像。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2016-10-25
        • 2018-02-24
        • 1970-01-01
        • 2019-01-06
        • 2016-08-24
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多