UI-senior(資料本地化-如何儲存圖片到本地)

weixin_34236497發表於2016-03-25

#import "ViewController.h"

@interface ViewController ()

@end

@implementation ViewController

- (void)viewDidLoad {

[super viewDidLoad];

#pragma mark ---圖片--------

//根據ImageNamed獲取圖片(會在快取中儲存一份,下次再獲取同名圖片的話直接從快取中取出)  優點:快 只有第一次時慢  缺點:會浪費記憶體,如果只用一次的話這塊記憶體就會浪費掉了

//UIImage *image = [UIImage imageNamed:@"1"];

//根據ContentOfFile獲取圖片:每一次都會從路徑中讀取,不會佔用記憶體.如果該圖片只使用一次的話 推薦使用ContentOfFile

//UIImage *image1 = [[UIImage alloc] initWithContentsOfFile:@"1"];

//123.png

//123@2X.png:兩倍解析度 5,5s,6,6s

//123@3X.png:三倍解析度 6plus ,6s plus


//第一步:建立一個圖片物件
UIImage *image = [UIImage imageNamed:@"1"];

#pragma mark ---將UIImage型別物件轉化成NSData型別---

    //第一個引數:表示轉哪個UIImage型別的物件

    //第二個引數:壓縮係數 越小壓縮的越厲害

//第二步:將圖片物件裝換成NSData物件
NSData *data = UIImageJPEGRepresentation(image, 1);


//第三步:確定要儲存資料夾的路徑
NSString *documentPathStr = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask, YES) objectAtIndex:0];
//第四步:確定要儲存的檔案
NSString *dataPath = [documentPathStr stringByAppendingPathComponent:@"data.png"];

//第五步:寫入
[data writeToFile:dataPath atomically:YES];

UIImageView *imageView = [[UIImageView alloc] initWithImage:image];

[self.view addSubview:imageView];

#pragma mark ---將型別NSData物件轉化成UIImage型別---

NSData *newData = [NSData dataWithContentsOfFile:dataPath];

UIImage *newImage = [[UIImage alloc] initWithData:newData];

NSLog(@"%@",newImage);

}

- (void)didReceiveMemoryWarning {

[super didReceiveMemoryWarning];

// Dispose of any resources that can be recreated.

}

@end

相關文章