在iPhone中从UIImage将图像保存到沙箱

时间:2009-07-19 21:06:34

标签: iphone uiimage

我在UITableView中显示非常大的图像,因此我的应用程序在一段时间后崩溃了。现在我想调整图像大小并将其保存到磁盘。有人可以帮我调整NSData / UIImage中的图像大小,并保存将其保存到磁盘。

我从UIImage获取了调整图像大小的代码,因此我在UIImage对象中调整了图像大小,如何将其保存到iphone沙箱。

谢谢,

2 个答案:

答案 0 :(得分:4)

你问'我怎么写文件'对吗?

我想你可能想要写入Library / Caches目录有一些复杂的问题,所以当手机备份时你不保存这些文件。

获取应用程序文件夹的根目录w / NSHomeDirectory(),然后附加库/缓存。

您可以在NSData上的fs w / a方法中编写NSData。如果您有UIImage,则可以UIImageJPEGRepresentation()UIImagePNGRepresentation获取数据。

答案 1 :(得分:1)

NSData *imgData = UIImageJPEGRepresentation(image, 1);

CGImageSourceRef source = CGImageSourceCreateWithData((CFMutableDataRef)imgData, NULL);
NSDictionary *metadata = [(NSDictionary *) CGImageSourceCopyPropertiesAtIndex(source,0,NULL)autorelease];
NSString  *jpgPath = [NSHomeDirectory() stringByAppendingPathComponent:@"Documents/Test.jpg"];
[imageMutableData writeToFile:jpgPath atomically:YES];

它会将您的图像复制到名为Test.jpg的沙箱中的文档文件夹。

如果您想为PNG执行此操作,可以尝试UIImagePNGRepresentation(image);