2011-03-10 97 views
5

是否可以將iPhone上相機捕獲的圖像保存到自定義目錄或iphone上的某個位置,而不是保存到相機膠捲上?將圖像存儲到iphone

我想將圖像保存到設備上,然後在稍後階段訪問,而不是使用ALAssets從相機卷讀取。

這可能嗎?

+0

@Joe:謝謝:P – jarryd 2011-03-30 19:32:34

回答

5

是的,你可以將它們保存到你的應用程序的文檔文件夾。這裏有一個例子:

// Create path 
NSString *imagePath = [NSHomeDirectory() stringByAppendingPathComponent:@"Documents/ImageName.png"]; 

// Write image to PNG 
[UIImagePNGRepresentation(image) writeToFile:imagePath atomically:YES]; 

找回它:

UIImage *image = [UIImage imageWithContentsOfFile:imagePath]; 

要列出的所有目錄中的文件:

NSFileManager *manager = [NSFileManager defaultManager]; 
NSArray *fileList = [manager directoryContentsAtPath:[NSHomeDirectory() stringByAppendingPathComponent:@"Documents"]]; 
for (NSString *s in fileList){ 
    NSLog(s); 
} 
+0

謝謝。我想知道圖像的管理。一旦保存到文件夾,如何獲取存儲圖像的url? – jarryd 2011-03-10 19:42:49

+0

@ Helium3我已經更新瞭如何保存爲pngs的示例(儘管jpgs中有類似的'UIImageJPEGRepresentation'方法),如何檢索保存的圖像以及如何列出目錄的內容。 – theChrisKent 2011-03-10 19:50:49

+0

謝謝。如果圖像沒有名字怎麼辦?有沒有一種方法可以將圖像保存到設備中並獲取url,以便可以存儲url以用於以後的圖像回調?或者應該爲照相機捕獲的每個圖像動態創建名稱? – jarryd 2011-03-10 22:33:50

1

使用此寫

// imageData = NSData object 
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
NSString *docsPath = [paths objectAtIndex:0]; 
NSString *imageCacheDirPath = [docsPath stringByAppendingPathComponent:@"anyFolderName"]; 
NSString *imageCachePath = [imageCacheDirPath stringByAppendingPathComponent:@"image.jpg"]; 
[imageData writeToFile:imageCachePath atomically:YES]; 

而且以下片段再次讀取數據:

// Get path of image 
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
NSString *docsPath = [paths objectAtIndex:0]; 
NSString *imageCacheDirPath = [docsPath stringByAppendingPathComponent:@"anyFolderName"]; 
NSString *imageCachePath = [imageCacheDirPath stringByAppendingPathComponent:@"image.jpg"]; 
NSData *imageData = [NSData dataWithContentsOfFile:imageCachePath]; 

注意,在這個例子中,圖像存儲在您的「文檔」文件夾的子文件夾,該文件夾被稱爲「anyFolderName」。變量docsPath包含您的目錄的「文檔」文件夾的路徑。

請注意,這只是我使用的代碼,它從iOS 3.0時代開始,可能有更好的方法將圖像存儲到應用程序的Documents文件夾中。

+0

保存1000個圖像到iPhone會導致任何問題?像記憶體管理問題? – 2013-12-18 09:47:47