2010-04-30 59 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