NSImage加載圖片

 轉自:http://www.leoshao.com/57.html

剛開始用NSImage,從網上查找的方法是調用 imageNamed方法

NSImage *myImage = [NSImage imageNamed:@"imageName.png"] ;

然後我加載一個絕對路徑的圖片怎麼也顯示不出來,在資源內的圖片都可以顯示出來。

查了一些資料才知道:imageNamed加載一個圖片的時候,先到到緩存中搜尋,看cache中是否存在,如果不存在則從資源中加載,用完了之後,其實這個圖片會被緩存起來,且在緩存中一個圖片對應一個唯一標識,默認爲不帶後綴的圖片名,當然你可以主動的爲某一個圖片註冊一個自己的標識也可以自己指定。

NSImage *myImage = [NSImage imageNamed:@"imageName.png"] ;
[myImage setName:@"myImage"];

這樣之後你就可以通過[NSImage imageNamed:@"myImage"]來獲取這個緩存中的圖片了,如果你硬是不想緩存某個圖片,那麼你可以在用完了圖片之後進行如下操作

1
[myImage setName:nil];

這樣下次你加載圖片的時候就會重新從資源中加載了。

imageNamed方法是不能通過路徑進行加載圖片的,如果要通過路徑加載圖片可以通過下面兩個方法加載,一個是URL一個是FilePath
NSImage *image = [[NSImage alloc]initWithContentsOfURL:(NSURL *)];
NSImage *image = [[NSImage alloc]initWithContentsOfFile:(NSString *)];

用完記得 [image release];

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章