【问题标题】:To add UIImage directly to file将 UIImage 直接添加到文件中
【发布时间】:2010-03-31 09:13:28
【问题描述】:
我想将我的 UIImage 直接添加到文件中,而不是转换为 UIImagePNGRepresentation 或 UIImageJPGRepresentation(因为它需要时间),例如:-
UIImage *im = [UIImage imageWithCGImage:ref];
[array addObject:im];
NSData *data = [array objectAtIndex:i];
[data writeToFile:path atomically:YES];
但它显示错误。
所以我有什么办法可以做到。
提前致谢。
【问题讨论】:
标签:
iphone
objective-c
uiimage
【解决方案1】:
您对array 的使用只会混淆您基本上正在做的事情:
NSData *data = im;
这不可能工作,因为im 是UIImage,而不是NSData,也不是子类。
您要做的是创建一个新的NSData 并使用图像的内容对其进行初始化。既然你有CGImageRef,我建议直接使用它,不要在两者之间使用UIImage。
CGDataProviderRef imageDataProvider = CGImageGetDataProvider(ref);
CFDataRef imageData = CGDataProviderCopyData(imageDataProvider);
NSData *data = (NSData*) imageData;
请注意,可以将 CFDataRef 转换为 NSData*,因为 CFData 与其对应的 Cocoa Foundation NSData 是“免费桥接”的。
希望对你有帮助。
(完成后不要忘记释放data)