将UIImage直接添加到文件中

时间:2010-03-31 09:13:29

标签: iphone objective-c uiimage

我想将我的UIImage直接添加到文件中,而不是转换为UIImagePNGRepresentation或UIImageJPGRepresentation(因为它需要时间),如: -

UIImage *im = [UIImage imageWithCGImage:ref];
[array addObject:im];
NSData *data = [array objectAtIndex:i];
[data writeToFile:path atomically:YES];

但它显示错误。 所以我有办法做到这一点。 在此先感谢。

1 个答案:

答案 0 :(得分:1)

您对array的使用只会混淆您基本上做的事情:

NSData *data = im;

这不可行,因为imUIImage,而不是NSData也不是子类。

您要做的是创建新的NSData并使用图片内容对其进行初始化。由于您有CGImageRef,我建议您直接使用它,而不使用UIImage

CGDataProviderRef imageDataProvider = CGImageGetDataProvider(ref);
CFDataRef imageData = CGDataProviderCopyData(imageDataProvider);
NSData *data = (NSData*) imageData;

请注意,将CFDataRef转换为NSData*是可以的,因为CFData与其Cocoa Foundation对应的NSData是“免费桥接”。

我希望有所帮助。

(完成后不要忘记发布data