哪一個在運行時更好: 1)在sqlite中保存大小爲250X120的圖像。 2)在文檔目錄中保存相同大小的圖像。 在兩個地方,應用程序需要將這些保存的圖像顯示在控件中。 另外我有要求顯示最多20個圖像。在iphone應用程序運行時保存圖像
0
A
回答
1
第二個選項比第一個好得多。爲了實現第二部分使用:
- (void)saveImage:(UIImage*)image:(NSString*)imageName
{
NSData *imageData = UIImagePNGRepresentation(image); //convert image into .png format.
NSFileManager *fileManager = [NSFileManager defaultManager];//create instance of NSFileManager
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); //create an array and store result of our search for the documents directory in it
NSString *documentsDirectory = [paths objectAtIndex:0]; //create NSString object, that holds our exact path to the documents directory
NSString *fullPath = [documentsDirectory stringByAppendingPathComponent:[NSString stringWithFormat:@"%@.png", imageName]]; //add our image to the path
[fileManager createFileAtPath:fullPath contents:imageData attributes:nil]; //finally save the path (image)
NSLog(@"image saved");
}
1
+1 M.Sharjeel - 我們用什麼通常是一個半混合,在那裏我們將有一個核心數據對象(由sqlite的在手機/ PAD支持),這具有關於快速搜索的文件的元數據,然後將NSString存儲到documentsDirectory中的路徑。
+0
同意他的看法..核心數據是有效的,並且執行比SQLite的更好 – 2012-03-30 12:22:45
0
如果你採取文件目錄的方式,這是一個很好的方法來實現它。
-(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);
}
}
要保存圖像,只需像這樣做:
NSString * path = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0];
[self saveImage:yourImage withFileName:@"Your Image Name" ofType:@"png" inDirectory:path];
要加載的圖像,實現此方法:
-(UIImage *) loadImage:(NSString *)fileName ofType:(NSString *)extension inDirectory:(NSString *)directoryPath {
UIImage * result = [UIImage imageWithContentsOfFile:[NSString stringWithFormat:@"%@/%@.%@", directoryPath, fileName, extension]];
return result;
}
,然後用它是這樣的:
NSString * path = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0];
yourImage.image = [self loadImage:@"Your Image Name" ofType:@"png" inDirectory:path];
或者你可以簡單地設置你的形象等於什麼該方法返回而不是創建一個方法:
NSString * path = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0];
yourImage.image = [UIImage imageWithContentsOfFile:[NSString stringWithFormat:@"%@/Your Image Name.png", path]];
相關問題
- 1. 圖像保存到iPhone應用程序
- 2. 在iPhone上運行我的應用程序時模糊圖像
- 3. 在運行期間從Flash應用程序保存圖像?
- 4. iphone應用程序運行時異常
- 5. 保存照片/圖像到應用程序? iPhone SDK
- 6. 核心數據未保存圖像的iPhone應用程序
- 7. iPhone - UIImagePickerController - >將圖像保存到應用程序文件夾
- 8. ios應用程序中保存圖像
- 9. 保存應用程序內的圖像
- 10. 運行程序時保持iphone活動
- 11. 保存圖片在IPhone應用程式
- 12. iPhone - 在運行時更改應用程序的圖標
- 13. 在Eclipse中保存文件時自動運行應用程序
- 14. 在android中保存指紋圖像時應用程序停止
- 15. Android應用程序在圖庫中保存和存儲圖像?
- 16. 我應該在哪裏將圖像保存到我的iPhone應用程序中?
- 17. 安卓應用程序時,試圖圖像保存到SD卡
- 18. Android - 試圖保存圖像時應用程序崩潰
- 19. 在iPhone空閒時間保存圖像
- 20. iPhone應用程序:崩潰,而在我的iPhone應用程序運行的圖像動畫
- 21. iPhone應用程序運行時內存泄漏檢測
- 22. iphone圖像保存
- 23. iPhone保存圖像
- 24. 當我在運行iPhone應用程序
- 25. 運行應用程序在越獄iphone
- 26. iphone應用程序在後臺運行?
- 27. 圖像增強在iPhone應用程序
- 28. 保持iOS應用程序鎖定時應用程序運行?
- 29. 在Windows應用商店應用程序中保存圖像
- 30. 碼頭Web應用程序的圖像需要保持運行
謝謝...我知道實現.... :) – adi27 2012-03-30 14:25:00