2011-12-06 48 views
-1

我正面臨一個問題。我的支持文件組下有一個名爲「相冊」的目錄。在這個目錄中我有一些圖像。在我的圖像編輯應用程序中,我想將編輯後的圖像保存在相冊目錄中。我嘗試用下面的代碼將圖像保存在我的相冊目錄如何從iPhone中的目錄中檢索圖像?

NSString *bundleRoot = [[NSBundle mainBundle] bundlePath]; 
NSString *albumPath = [bundleRoot stringByAppendingString:@"/Album"]; 
NSString *savedImagePath = [bundleRoot stringByAppendingPathComponent: @"newImage11.jpeg" ]; UIGraphicsBeginImageContext(drawImage.image.size); 
CGContextRef ctx = UIGraphicsGetCurrentContext(); 
[drawImage.layer renderInContext:ctx]; 
UIImage *editedImage = UIGraphicsGetImageFromCurrentImageContext(); 
NSData *editedImageData = UIImageJPEGRepresentation(editedImage, 1.0); UIGraphicsEndImageContext(); 
[editedImageData writeToFile:savedImagePath atomically:YES]; 

這裏的drawImage是的UIImageView的持有的image.This代碼保存的文件newImage11.jpeg在我的相冊目錄具有尺寸IBOutlet中也。但是當我從相冊目錄中檢索圖像時,它會給我一個空白圖像。我使用以下代碼來檢索圖像

NSString *img = [onlyJPGs objectAtIndex:currentIndex+numberToAdd]; 
UIImage *tempImage = [UIImage imageNamed:img]; 
imageButton.tag = img; 
[imageButton setImage:tempImage forState:UIControlStateNormal]; 
[imageButton addTarget:nil action:@selector(goToEdit:) forControlEvents:UIControlEventTouchUpInside]; 
currentIndex+=numberToAdd; 

onlyJPGs是一個數組,其中包含的所有圖像的名稱包含在相冊目錄中。我確定我的應用程序將圖像保存在Album目錄中,因爲當我使用終端在ImageEditing.app中列出Album目錄中的內容時,它會顯示newImage11.jpeg文件。任何形式的幫助都是可觀的。

回答

0

問題只是簡單的你要保存編輯後的圖像轉換成bundle.Actually應用程序包爲「只讀」。對於這種讀寫訪問,您可以使用文檔目錄或庫。 您可以通過以下代碼片段獲取文檔目錄路徑。

NSString *path=[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject]; 
0

首先你不能寫入bundlePath,洞應用程序包是隻讀的。

其次,你確定你已經在項目的資源組中創建了一個目錄,而不是一個組(組文件夾圖標是黃色,文件夾是藍色的)。

構建您的應用程序時,組的黃色文件夾將被忽略,此文件夾中的所有文件均位於應用程序包的根目錄中。

您可以將文件寫入到文件目錄:

NSString *documentPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject]; 

這些目錄將自動與iCould同步,並根據蘋果公司應該只包含用戶生成的文件。你的應用程序可以重建或可以再次下載緩存目錄應該去的任何文件:

NSString *cachesPath = [NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES) lastObject]; 
+0

是的我在資源組中創建了一個目錄。它在Xcode窗口中呈藍色。 –

+0

但我想檢索並保存在一個目錄(相冊)中的圖像。如果bundlePath是隻讀的,那麼我如何將圖像保存在我的應用程序文件夾內的相冊目錄中? –

+0

你不能!您將需要將圖像保存在文檔目錄中。 – rckoenes