【问题标题】:iPhone iOS 5 Core Data Images [duplicate]iPhone iOS 5核心数据图像[重复]
【发布时间】:2012-07-14 18:21:46
【问题描述】:

可能重复:
How should I store UIImages within my Core Data database?

我决定将图像保存在 Core Data 中,而不是将它们保存在磁盘上。我查看了 Apple 的名为 Locations 的示例代码。但是,该代码针对 iOS 4,我看到另一个 Stack Overflow 帖子,这在 iOS 5 中发生了变化。

我已阅读有关允许外部存储的信息,并且我将图像作为二进制数据保存在我的核心数据模型中。

以下代码从核心数据中检索图像,我在网上找到了这个。但是,我找不到任何关于如何将图像以二进制格式保存到核心数据的教程,也找不到任何关于使用核心数据和 iOS 5 与图像的教程。

NSData *savedBinaryData = entity.smallImage;
self.smallImage.image = [UIImage imageWithData:savedBinaryData];

【问题讨论】:

  • 查看 creativ 的回答。就个人而言,我在使用数据库存储图像时看到了可怕的性能。我随后又将图像存储在 Documents 文件夹中并跟踪数据库中的文件名。它看起来不那么优雅,但至少对我来说,它要快得多。如果您使用大量图像执行此操作,您可能希望对这两种方法进行基准测试,但我认为您会发现 Documents 文件夹要快得多。
  • @RobertRyan 我遇到了很多问题,我快疯了。我使用了 GCD,但这仍然没有得到我想要的结果。我的计划是将缩略图存储在 Core data 60 X 60 中,并将完整图像存储在文档中,然后在必要时加载它
  • 当然可以,但我个人将图像和缩略图都存储在Documents 中,只是在不同的文件夹中。不确定我是否看到将一些图像存储在 Documents 和其他图像存储在 Core Data 中的好处。关于您“仍然没有得到......我想要的结果”的评论,我不确定您得到了什么以及为什么不令人满意,所以我无法对此发表评论。
  • @RobertRyan 你在应用商店里有没有使用文档方法的应用,我想看看你从这个方法中得到的性能
  • 我在商店中有一个应用程序,它可以很好地处理数据库中的缩略图和存储在闪存中的较大图像。我将缩略图保存为 jpeg(原件也是 jpeg),因此尺寸更小,但最有可能将它们光栅化需要更长的时间。

标签: iphone objective-c ios ios5


【解决方案1】:

您可以使用 UIImagePNGRepresentation(UIImage* image) 从 UIImage 中获取二进制数据,然后将 NSData 保存在核心数据中。

所以你可以这样做:

[object setSmallImage: UIImagePNGRepresentation(image)];

【讨论】:

    猜你喜欢
    • 2011-12-10
    • 1970-01-01
    • 2011-01-06
    • 1970-01-01
    • 2012-02-18
    • 1970-01-01
    • 2023-04-01
    • 2013-11-26
    相关资源
    最近更新 更多