【代碼筆記】顯示圖片的各種方式,代碼筆記顯示圖片
代碼:
- (void)viewDidLoad{ [super viewDidLoad]; // Do any additional setup after loading the view. UIImageView *img=[[UIImageView alloc]initWithFrame:CGRectMake(50, 100, 200, 200)]; img.backgroundColor=[UIColor redColor]; [self.view addSubview:img]; //從網路下載圖片,儲存,並用 UIImageView 從儲存中顯示 NSString * documentsDirectoryPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0]; NSLog(@"儲存路徑:%@",documentsDirectoryPath); //Get Image From URL UIImage * imageFromURL = [self getImageFromURL:@"http://file.duteba.com/phone/2009/04/5/ftGxL8kcUL.jpg"]; //Save Image to Directory [self saveImage:imageFromURL withFileName:@"MyImage" ofType:@"jpg" inDirectory:documentsDirectoryPath]; //Load Image From Directory UIImage * imageFromWeb = [self loadImage:@"MyImage" ofType:@"jpg" inDirectory:documentsDirectoryPath]; [img setImage:imageFromWeb]; //取得目錄下所有檔案名稱 NSArray *file = [[[NSFileManager alloc] init] subpathsAtPath:documentsDirectoryPath]; NSLog(@"%lu",(unsigned long)[file count]); NSLog(@"%@",file); }//從網路下載圖片-(UIImage *) getImageFromURL:(NSString *)fileURL { NSLog(@"執行圖片下載函數"); UIImage * result; NSData * data = [NSData dataWithContentsOfURL:[NSURL URLWithString:fileURL]]; result = [UIImage imageWithData:data]; return result;}//將所下載的圖片儲存到本地-(void) saveImage:(UIImage *)image withFileName:(NSString *)imageName ofType:(NSString *)extension inDirectory:(NSString *)directoryPath { if ([[extension lowercaseString] isEqualToString:@"png"]) { [UIImagePNGRepresentation(image) writeToFile:[directoryPath stringByAppendingPathComponent:[NSString stringWithFormat:@"%@.%@", imageName, @"png"]] options:NSAtomicWrite error:nil]; } else if ([[extension lowercaseString] isEqualToString:@"jpg"] || [[extension lowercaseString] isEqualToString:@"jpeg"]) { [UIImageJPEGRepresentation(image, 1.0) writeToFile:[directoryPath stringByAppendingPathComponent:[NSString stringWithFormat:@"%@.%@", imageName, @"jpg"]] options:NSAtomicWrite error:nil]; } else { //ALog(@"Image Save Failed\nExtension: (%@) is not recognized, use (PNG/JPG)", extension); NSLog(@"檔案尾碼不認識"); }}//讀取本地儲存的圖片-(UIImage *) loadImage:(NSString *)fileName ofType:(NSString *)extension inDirectory:(NSString *)directoryPath { UIImage * result = [UIImage imageWithContentsOfFile:[NSString stringWithFormat:@"%@/%@.%@", directoryPath, fileName, extension]]; return result;}- (void)didReceiveMemoryWarning{ [super didReceiveMemoryWarning]; // Dispose of any resources that can be recreated.}
輸出:
2015-10-13 13:43:09.989 從網路下載圖片,儲存,並用 UIImageView 從儲存中顯示[7260:182365] 儲存路徑:/Users/chenlihua/Library/Developer/CoreSimulator/Devices/78D1FCBF-9990-471F-9075-168F2CE949FE/data/Containers/Data/Application/52E9DF04-CC22-4834-A3C5-2261A5061032/Documents2015-10-13 13:43:09.989 從網路下載圖片,儲存,並用 UIImageView 從儲存中顯示[7260:182365] 執行圖片下載函數2015-10-13 13:43:10.231 從網路下載圖片,儲存,並用 UIImageView 從儲存中顯示[7260:182365] 02015-10-13 13:43:10.231 從網路下載圖片,儲存,並用 UIImageView 從儲存中顯示[7260:182365] ()