iOS儲存網路圖片和讀取本地沙盒圖片

weixin_33866037發表於2016-06-24

在開發中常常遇到這樣的需求,需要將網路請求回來的url地址中的圖片儲存到本地,在下次啟動app的時候檢視本地是否存在圖片,不存在才去下載網路圖片.當然使用SDWebImage框架也是可以的,這裡我們自己來實現這樣的功能.思路來源於SDWebImage原理
涉及到的知識點
如何儲存圖片到本地以及如何從本地讀取圖片
1,儲存網路圖片到本地沙盒路徑

首先,需要獲取沙盒路徑
NSString *path = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject];
// 拼接圖片名為"currentImage.png"的路徑
NSString *imageFilePath = [path stringByAppendingPathComponent:@"currentImage.png"];
//獲取網路請求中的url地址
NSString *url = [dataDic objectForKey:@"IndexUrl"];
NSData *data = [NSData dataWithContentsOfURL:[NSURL  URLWithString:url]];
//轉換為圖片儲存到以上的沙盒路徑中
UIImage * currentImage = [UIImage imageWithData:data]; 
//其中引數0.5表示壓縮比例,1表示不壓縮,數值越小壓縮比例越大
[UIImageJPEGRepresentation(currentImage, 0.5) writeToFile:imageFilePath  atomically:YES];

2,讀取沙盒路徑中圖片

//藉助以上獲取的沙盒路徑讀取圖片
 NSString *imageFilePath = [path stringByAppendingPathComponent:@"currentImage.png"];

相關文章