ios 關於圖片讀取
初學ios開發,便遇到了一個實際專案,在現做現學的情況下,終於也把專案的整體框架寫好了。
今天在儲存圖片和讀取圖片時,遇到了一些問題,好在這些問題前輩們都經歷過,也留下了很好寶貴的資料,這才使小弟能順利解決問題。
這裡要感謝http://blog.csdn.net/jerryvon/article/details/7526147的博主。其實這位博主就圖片的操作應經寫的很明白了。只是小弟我記性差,非得要親自動手寫出來,這知識點才記得住。
影象的儲存
儲存到本地目錄,其實就是儲存到我們的程式。ios儲存圖片就兩個地方,一個是相簿,另一個就是本地目錄。
首先得獲取本地目錄,有兩種方式
方式一:
NSArray *paths =
方式二:
NSString *dirPath=[NSString stringWithFormat:@"%@/Documents",NSHomeDirectory()];
然後就可以設定儲存的圖片名稱
NSString *fileName = [NSString stringWithFormat: @"%@/test.jpg", dirPath];
一般我們都是將UIImage儲存成圖片檔案,步驟如下,
1. 將UIImage轉化成二進位制資料 (UIImage *image)
NSData *data = UIImageJPEGRepresentation(image, 1.0f);
2. 將NSData資料寫入檔案
[data writeToFile:fileName atomically:YES];
至此,儲存圖片就完成了。
再來說說讀取圖片,其實今天就是卡在讀取圖片了。
我之前讀取圖片全都是用UIImage *image = [UIImage imageNamed:@"test.jpg"]這個方法,很好使,沒有出現過什麼錯,然後我就天真的以為讀取圖片就應該用這個方法。
知道今天要讀取本地圖片時,我才發現,這個方法不是萬能的,它不能讀取本地圖片。它的作用是讀取資原始檔中的圖片。就是和我們一堆的.h和.m在一個工程下的那些圖片。
那麼讀取本地圖片用什麼方法呢?用的是如下這個方法。
UIImage *image = [UIImage alloc] initWithContentsOfFile:fileName];
總結一下讀取圖片就是:
讀取工程中的資源圖片用
UIImage *image = [UIImage imageNamed:@"test.jpg"]
讀取本地的圖片用
UIImage *image = [UIImage alloc] initWithContentsOfFile:fileName];