【问题标题】:How to upload image in Sqlite Database Browser?如何在 Sqlite 数据库浏览器中上传图像?
【发布时间】:2013-08-27 12:30:31
【问题描述】:

我正在制作一个将使用核心数据的 IOS 应用程序,我想将图像保存在数据库中,谁能告诉我如何在 Sqlite 数据库浏览器中上传图像?

【问题讨论】:

  • 如果您使用的是 Core Data,为什么要询问 SQLite?

标签: ios sqlite


【解决方案1】:

要使用核心数据将图像存储在 Sqlite 数据库中,您需要将图像转换为数据 例如

NSData *photo_data = UIImagePNGRepresentation(aImage);


现在你可以存储这个 photo_data。在核心数据模型中,你创建一个“二进制数据”类型的属性

在存储图像数据时使用此属性。

【讨论】:

  • 如果我想同时存储30张图片怎么办?
  • 因为图像尺寸更好,一般来说,您可以保存图像名称并通过使用最佳方式命名特定图像。将所有图像存储在一个文件夹中并使用路径访问它们。
  • 性能方面也不错,最好看看这个答案stackoverflow.com/questions/4158286/storing-images-in-core-data
  • 感谢 Shan 提供上述解决方案,但我的图像将来自服务器,而且太动态了,这意味着我将获取我想存储在数据库中的二进制数据。请提供您的想法。
  • 嗯,既然您有更多数据,最好将它们保存在一个位置,例如在一个文件夹中,将此文件夹的位置存储在核心数据中以显示图像。我认为这是处理大数据图像的最佳方式,而且是简单高效的方式。
【解决方案2】:

您不能只是将图像文件放入 sqlite。您需要将图像转换为base64之类的格式或可以存储的格式。当您想要检索图像时,您必须将其转换回其原始形式。在大多数情况下,您需要做的就是存储图像的路径,而不是图像本身。

【讨论】:

    【解决方案3】:

    您可以在 sqlite 中使用 blob 对象。首先,您将图像转换为 NSData 类型:

    NSData *uiimage=UIImagePNGRepresentation(im);
    

    将您的数据绑定为 blob 对象后,例如:

    sqlite3_bind_blob(statement,.., [uiimage bytes], [uiimage length], SQLITE_TRANSIENT);
    

    【讨论】:

      猜你喜欢
      • 2016-02-14
      • 2014-03-13
      • 1970-01-01
      • 1970-01-01
      • 2023-04-01
      • 1970-01-01
      • 2011-02-28
      • 2010-12-25
      • 1970-01-01
      相关资源
      最近更新 更多