我做广告页面时,由于不是太主要的模块 不需要时时更新,那么为了APP的流畅性 就选择了保存沙盒里,下次再从里面读取.
1.第一步比较简单 从网络获取图片
NSData *data = [NSData dataWithContentsOfURL:[NSURL URLWithString:urlStr]];// 本地
UIImage *image = [UIImage imageWithData:data]; // 取得图片
2.第二步 打开沙盒 创建 存储图片的路径
NSString *path = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject];
// 得到本地沙盒中名为"MyImage"的路径,"MyImage"是保存的图片名
NSString *imageFilePath1 = [path stringByAppendingPathComponent:@"MyImage"];
3.第三步 压缩 并按照路径存储图片 压缩的比例自己定义 我是用的 0.5.
其中0.5表示压缩比例,1表示不压缩,数值越小压缩比例越大.
BOOL success = [UIImageJPEGRepresentation(image, 0.5) writeToFile:imageFilePath1 atomically:YES];
if (success){
NSLog(@"写入本地成功");
}
4.第四步 就是根据路径从沙盒里取出图片了
// 本地沙盒目录
NSString *path = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject];
// 得到本地沙盒中名为"MyImage"的路径,"MyImage"是保存的图片名
NSString *imageFilePath = [path stringByAppendingPathComponent:@"MyImage"];
UIImage *image = [UIImage imageWithContentsOfFile:imageFilePath]]