1. 程式人生 > >ios 關於圖片讀取

ios 關於圖片讀取

初學ios開發,便遇到了一個實際專案,在現做現學的情況下,終於也把專案的整體框架寫好了。

今天在儲存圖片和讀取圖片時,遇到了一些問題,好在這些問題前輩們都經歷過,也留下了很好寶貴的資料,這才使小弟能順利解決問題。

這裡要感謝http://blog.csdn.net/jerryvon/article/details/7526147的博主。其實這位博主就圖片的操作應經寫的很明白了。只是小弟我記性差,非得要親自動手寫出來,這知識點才記得住。

影象的儲存

儲存到本地目錄,其實就是儲存到我們的程式。ios儲存圖片就兩個地方,一個是相簿,另一個就是本地目錄。

首先得獲取本地目錄,有兩種方式

方式一:

NSArray *paths =

NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask, YES);

NSString *dirPath = paths[0];

方式二:

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];