2010-04-30 61 views
0

我的應用程序資源包中有許多圖像(PNG,GIF和JPG)。 我想一些圖像將被保存在我的文檔目錄,所以我使用:使用NSData保存PNG圖像writetofile保存iphone磁盤上的損壞數據

imgPath=[documentsDirectoryPath stringByAppendingPathComponent:@"myImage.png"]; 

    if (![fileMgr fileExistsAtPath:imgPath]) { 

    [[fileMgr contentsAtPath:[[NSBundle mainBundle] pathForResource:@"myImage"ofType:@"png"]] writeToFile:imgPath atomically:NO]; 

} 

這節省了我的期望的路徑中的圖片文件,但該文件在它導致了一個額外的300個字節(也許垃圾數據)在一個損壞的圖像... 我在這裏做錯了什麼?

這適用於模擬器,但在真實設備上圖像有一些額外的300字節。 也GIF圖像得到很好地複製和工作,但是PNG圖像會出現此問題。

回答

1

你可以嘗試使用NSFileManagers-(BOOL)copyItemAtPath:(NSString *)srcPath toPath:(NSString *)dstPath error:(NSError **)error方法來看看你是否得到更好的結果。

如果您要在Mac上查看已保存的PNG,您可能會遇到問題,因爲Xcode會在構建應用程序時將您的PNG轉換爲iPhone優化版本。

Here is more info on the optimizations performed,這裏是Apple's Technical Q&A用於取消優化,以便您可以在桌面上查看圖像。

+0

謝謝....我現在使用JPEG格式... – jAmi 2010-05-04 08:59:11