我想将我的UIImage直接添加到文件中,而不是转换为UIImagePNGRepresentation或UIImageJPGRepresentation(因为它需要时间),如: -
UIImage *im = [UIImage imageWithCGImage:ref];
[array addObject:im];
NSData *data = [array objectAtIndex:i];
[data writeToFile:path atomically:YES];
但它显示错误。 所以我有办法做到这一点。 在此先感谢。
答案 0 :(得分: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
)