我本來把圖片資源放在APP里面,然后用UIImage * image = [UIImage imageNamed:imgName]];來取得image。這兩天,我把原本在app里面的資源圖片,在程序啟動(dòng)是copy到document目錄里面。這樣就沒有辦法用imageNamed方法來取圖片了。我就用NSString* documentsDirectoryPath =[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask, YES) objectAtIndex:0];UIImage* result =[UIImage imageWithContentsOfFile:[NSString stringWithFormat:@"%@/%@.%@", documentsDirectoryPath, fileName, extension]];方法來取image。但這樣返回的image非常模糊,我用128*128像素的,顯示在64*64的imageView中。原來imageNamed方法沒有問題。我用NSData * imgData = UIImagePNGRepresentation(image);NSLog(@"size : %d",[imgData length]);方法來看取回的image大小,imageNamed的大小是imageWithContentsOfFile的3倍,請(qǐng)問什么原因?
1 回答

翻閱古今
TA貢獻(xiàn)1780條經(jīng)驗(yàn) 獲得超5個(gè)贊
imageNamed:
這個(gè)方法的文檔上面寫著,使用這個(gè)方法的時(shí)候,如果設(shè)備的屏幕分辨率的倍率是2倍的話(目前包括iPhone 4、4S、5和iPad 3、4),那么這個(gè)方法會(huì)自動(dòng)加載名字帶有@2x的圖片文件。例如,在iPhone 4上運(yùn)行:
[UIImage imageNamed:@"button.png"];
那么,實(shí)際加載的是button@2x.png
這個(gè)文件,而不是button.png
。而imageWithContentsOfFile:
則沒有這個(gè)機(jī)制,你指定的是什么文件名,它加載的就是哪個(gè)文件。
- 1 回答
- 0 關(guān)注
- 377 瀏覽
添加回答
舉報(bào)
0/150
提交
取消