【问题标题】: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;
    

    这不可能工作,因为imUIImage,而不是NSData,也不是子类。

    您要做的是创建一个新的NSData 并使用图像的内容对其进行初始化。既然你有CGImageRef,我建议直接使用它,不要在两者之间使用UIImage

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

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

    希望对你有帮助。

    (完成后不要忘记释放data

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-02-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-01-12
      相关资源
      最近更新 更多