将下载的图像转换为内存中的静态图像-IOS
Posted
技术标签:
【中文标题】将下载的图像转换为内存中的静态图像-IOS【英文标题】:Convert a downloaded image to in-memory static image -IOS 【发布时间】:2017-01-11 06:28:02 【问题描述】:我的场景是这样的。在应用程序开始时,将从服务器下载图像列表,下载后所有图像都将转换为静态图像,然后将在应用程序中的任何地方使用这些静态图像。我认为在android中这个东西可以使用BITMAP来实现。 (未确认)。
目前我正在使用SDWEBIMAGE 库来下载和缓存图像。但我不想再使用这个库了。我只想一次下载所有图像,然后在任何我想添加下面的代码 sn-p 以显示下载的图像。
[ImageView setImage:[UIImage imageNamed:@"DownloadedImageName"]];
有没有办法在 ios 中完成这件事?
【问题讨论】:
【参考方案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 文件夹加载图像。
【讨论】:
以上是关于将下载的图像转换为内存中的静态图像-IOS的主要内容,如果未能解决你的问题,请参考以下文章