如何将 UIImage 存储在 NSDictionary 中?

Posted

技术标签:

【中文标题】如何将 UIImage 存储在 NSDictionary 中?【英文标题】:How can I store a UIImage in an NSDictionary? 【发布时间】:2010-02-02 17:29:28 【问题描述】:

【问题讨论】:

【参考方案1】:

是的,你可以:

NSMutableDictionary *dict = [NSMutableDictionary dictionaryWithCapacity:1];
UIImage *img = ...;
[dict setObject:img forKey:@"aKeyForYourImage"];

UIImage *imgAgain = [dict objectForKey:@"aKeyForYourImage"];

【讨论】:

不知何故它对我不起作用:(是否需要完成任何额外的步骤? @raistlin 这个答案在这一点上令人难以置信晚了,但我只想提一下,检查您的图像是否为空(检查它是否已添加到目标等.) 解决了我的问题。【参考方案2】:

好的,我最近遇到了这个问题,上面的解决方案对我没有用。因此,如果其他人在这里找到解决相同问题的方法,这就是它的完成方式

NSDictionary *imageDictionary = @
 kImageKey:  UIImageJPEGRepresentation(/*INSERT YOUR UIImage HERE*/,0.1)
                                 ;

// 0.1代表压缩质量0.0最低到1.0最高质量

然后从字典中取回图像使用

[UIImage imageWithData:[imageDictionary objectForKey: kImageKey]];

【讨论】:

不需要这个。 NSDictionary 可以存储 UIImage 值,只要您不尝试将字典保存到 plist 文件。【参考方案3】:

您不能将 UIImage 对象存储在字典中。您必须将图像转换为 NSData 对象并将其存储在字典中。

NSData *imgData = UIImageJPEGRepresentation(yourImage, 0.0f);
[dictionary setObject:imgData forKey:@"your key"];

【讨论】:

不正确。 NSDictionary 可以存储 UIImage 值,只要您不尝试将字典保存到 plist 文件。【参考方案4】:

[dictionary setObject:yourImage forKey:@"whatever key you want"];

未经测试;-)

【讨论】:

【参考方案5】:

[dict setObject:image forKey:@"ImageToStore"];

【讨论】:

【参考方案6】:

这取决于你想用你的 NSDictionary 做什么。虽然,是的,您可以将 UIImage 存储在 NSDictionary 中,但在需要符合某些标准的情况下,您可能无法使用所述字典对象。

例如,您可以使用 NSDictionary 作为standardUserDefaults 中的值,但前提是该字典中的每个对象都是属性列表对象。 UIImage 不是属性列表对象。 NSData 是,因此您可以使用 UIImageJPEGREpresentation 将您的 UIImage 转换为 NSData,并以这种方式存储它,如上所述。

【讨论】:

以上是关于如何将 UIImage 存储在 NSDictionary 中?的主要内容,如果未能解决你的问题,请参考以下文章

如何将图像存储到 UIImage 数组(Swift)

如何将 [String: UIImage] 类型的字典存储到 CoreData/UserDefaults 中?

将 UIImage 保存到文件而不是 NSUserDefaults

将UIImage转换为NSData并返回UIImage

如何以降序对ios中添加的UIImage添加NSMutableArray进行排序

如何使用 NSFileManager 将 UIImage 保存到文件中?