在 iOS 中将图像保存到 SQLite 以及从 SQLite 检索图像

2023-11-26

我正在尝试将图像保存到 Sqlite,然后将图像加载到 UIImageView。但它没有得到工作。我不知道出了什么问题。这是我正在使用的代码。谁能帮我解决这个问题。

- (void)saveImage {
    sqlite3_stmt *compiledStmt;
    if(sqlite3_open([dbPath UTF8String], &db)==SQLITE_OK){
        const char *insertSQL="insert into Image(Image)values(?)";
        if(sqlite3_prepare_v2(db,insertSQL, -1, &compiledStmt, NULL) == SQLITE_OK){
            UIImage *image = [UIImage imageNamed:@"farmhouse.png"];
            NSData *imageData=UIImagePNGRepresentation(image);
            sqlite3_bind_blob(compiledStmt, 1, [imageData bytes], [imageData length], NULL);

            sqlite3_step(compiledStmt);

            char *errMsg;
            sqlite3_exec(db, insertSQL, NULL,compiledStmt,&errMsg);

        }
    }
}

- (void)showImage {
    sqlite3_stmt *compiledStmt;
    if(sqlite3_open([dbPath UTF8String], &db)==SQLITE_OK){
        const char *insertSQL = "Select Image from Image Where Sl.No = ?";
        sqlite3_prepare_v2(db,insertSQL, -1, &compiledStmt, NULL);
        if(sqlite3_prepare_v2(db,insertSQL, -1, &compiledStmt, NULL) == SQLITE_OK){
            sqlite3_bind_int(compiledStmt, 1, 1);
            if(SQLITE_DONE != sqlite3_step(compiledStmt)) {                
                NSData *data = [[NSData alloc] initWithBytes:sqlite3_column_blob(compiledStmt, 1) length:sqlite3_column_bytes(compiledStmt, 1)];

                if(data == nil)
                    NSLog(@"No image found.");
                else
                    imgView.image = [UIImage imageWithData:data];


            }
        }
    }
}

谁能指出上面代码的问题。

提前致谢


- (void)saveImage 
{
  sqlite3_stmt *compiledStmt;
  sqlite3 *db;
  if(sqlite3_open([dbPath UTF8String], &db)==SQLITE_OK){
  NSString *insertSQL=@"insert into Image(image) VALUES(?)";
  if(sqlite3_prepare_v2(db,[insertSQL cStringUsingEncoding:NSUTF8StringEncoding], -1, &compiledStmt, NULL) == SQLITE_OK){
  UIImage *image = [UIImage imageNamed:@"vegextra.png"];
  NSData *imageData=UIImagePNGRepresentation(image);

  sqlite3_bind_blob(compiledStmt, 1, [imageData bytes], [imageData length], SQLITE_TRANSIENT);

  if(sqlite3_step(compiledStmt) != SQLITE_DONE ) {
      NSLog( @"Error: %s", sqlite3_errmsg(db) );
  } else {
      NSLog( @"Insert into row id = %lld", (sqlite3_last_insert_rowid(db)));
  }

sqlite3_finalize(compiledStmt);
  }
 }
sqlite3_close(db);
}

- (void)showImage
 {
   sqlite3_stmt *compiledStmt;
   sqlite3 *db;
   int i = 1;
   if(sqlite3_open([dbPath UTF8String], &db)==SQLITE_OK){
   NSString *insertSQL = [NSString stringWithFormat:@"Select image from Image Where Id = %d",i];
   if(sqlite3_prepare_v2(db,[insertSQL cStringUsingEncoding:NSUTF8StringEncoding], -1, &compiledStmt, NULL) == SQLITE_OK) {
   while(sqlite3_step(compiledStmt) == SQLITE_ROW) {

   int length = sqlite3_column_bytes(compiledStmt, 0);
   NSData *imageData = [NSData dataWithBytes:sqlite3_column_blob(compiledStmt, 0) length:length];

   NSLog(@"Length : %d", [imageData length]);

  if(imageData == nil)
     NSLog(@"No image found.");
  else
     imgView.image = [UIImage imageWithData:imageData];
   }
 }
 sqlite3_finalize(compiledStmt);
}
sqlite3_close(db);
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 iOS 中将图像保存到 SQLite 以及从 SQLite 检索图像 的相关文章

随机推荐

  • 有没有办法在 .net core 中对 F# 项目进行单元测试?

    我正在尝试创建一个在 net core 中运行的 F 单元测试项目 dotnet new t xunittest 将为 C 创建一个 xunit 测试项目 但 F 不存在此类等效项 我尝试修改从上面显示的 C dotnet new 输出的
  • R:有效地从数组中删除单维

    我正在寻找一种快速方法来从 R 数组中删除冗余维度 类似于squeeze MATLAB 中的命令 现在我结合了melt 和cast 命令来自reshape2包 但应该有一种不太复杂的方法来做同样的事情 到目前为止我就是这样做的 requir
  • 将 stargazer 与通过在分割 data.frame 上 lapply-ing 创建的 lm 对象列表一起使用

    我正在尝试为一组回归创建一个观星表 其中我对数据的子集运行每个回归 我认为 做到这一点的自然方法是使用split要从我的数据创建 data frames 列表 请使用以下命令创建 lm 对象列表lapply在 data frames 列表上
  • 从流中读取 XML

    我正在使用 ASP NET 并从表单导入 XML 文件 现在我将其转换为Stream Stream inputStream XmlFileUploadControl PostedFile InputStream 因为我以后可能需要这个版本
  • OSX 上 JVM 的 Zombie http.proxyHost 设置

    我最近更改了网络 并从 OSX Leopard 上的系统偏好设置 网络面板中删除了所有 HTTP 代理设置 然而 现在每当我使用 Eclipse 时 Java HTTP 代理系统属性似乎都会 自动 设置为使用我现在已失效的 HTTP 代理
  • 如何在CSS中使图像悬停?

    我想在悬停时将图像从正常更改为更亮 我的代码 div class nkhome a href Home html img src Images btnhome png a div nkhome margin left 260px top 1
  • 关于Spring框架应用中Beans.xml配置文件的使用

    我正在学习Spring MVC 今天 试图了解如何实现 JDBC DAO 我在 Spring Spring 而不是 Spring MVC 中找到了这个 Hello World 并且我开始看到它 因为我认为要实现 DAO 我必须创建一个单独的
  • 如何管理docker中的临时文件?

    我正在运行一个 Java 应用程序 它以给定格式读取一些数据并在临时目录中写入 CSV 文件 该文件完全写入后 数据将批量加载到数据库中 加载完成后 该文件将立即删除 不应共享此文件 现在 我想在 docker 容器中运行该应用程序的 ja
  • 有没有办法在 Android 设备上安全地存储用户数据?

    我正在编写一个应用程序 用户有时会通过它下订单 我想让用户可以选择保存他们的账单信息 姓名 地址等 以便以后如果他们想再次下订单时可以快速恢复 用户将输入密码以保护数据 显然 我不能只是将其作为文件放在设备上 因为任何人都可以 root 查
  • 在 BigQuery 中包含带有 ANY_VALUE 的空值

    我有一个 供应商 表 看起来像这样 company itemKey itemPriceA itemPriceB companyA 203913 20 10 companyA 203914 20 20 companyA 203915 25 5
  • 首先将列添加到带有数据库的 aspnetusers

    我找到了许多通过数据库迁移向身份表添加列 我已成功移至应用程序数据库 的教程 但我的理解是这不适用于数据库拳头项目 那么 如何将列添加到数据库第一个项目中的 aspnetusers 表中 我想添加一个名为 Is RegComplete 的位
  • PHP 函数使用外部变量

    function parts part structure http site url content echo tructure part php 这个函数使用了一个变量 site url这是在本页顶部定义的 但该变量未传递到函数中 我们
  • 如何使用 iframe 进行异步(AJAX)文件上传?

    我正在尝试使用ajax上传文件 我读到如果不使用就不可能做到这一点iframe 我写
  • 分解 C++ 代码大小

    我正在为旧博客文章中的第一个问题寻找一个很好的 Stack Overflow 风格答案C 代码大小 我将在下面重复 我真的很想要一些工具 最好是基于 g 来显示编译 链接代码的哪些部分是从 C 源代码的哪些部分生成的 例如 查看是否正在为数
  • 如何生成随机数,每个随机数与所有其他元素的差异至少为 x?

    我知道这违背了随机数的定义 但我的项目仍然需要这个 例如 我想生成一个包含 5 个随机元素的数组range 0 200 现在 我希望每个元素之间至少有 15 的差异 所以随机数组应该看起来像这样 15 45 99 132 199 我可以使用
  • 使用 Javascript 将 HTML 的 DocType 作为字符串获取

    我知道我可以通过访问 doctype 对象document doctype or document childNodes 0 但我的问题是将 doctype 作为字符串获取 我可以通过调用在 chrome 和 safari 中执行此操作do
  • 如何使用 Spring Boot 配置嵌入式 ActiveMQ Broker URL

    我遵循了一个使用 Spring Boot 版本 1 4 X 设置和运行嵌入式 ActiveMQ 的简单示例 这是示例的链接https spring io guides gs messaging jms 我的课程结构如下 SpringBoot
  • 为什么在 Python 中修改父框架仅适用于模块框架?

    我正在玩inspect stack 我尝试修改父框架的局部变量 它似乎仅在父框架是模块级时才有效 以下代码显示了这一点 Python 2 7 import inspect def outer a 10 print a modify prin
  • C# 自动关闭消息框

    我目前正在用 C 开发一个应用程序 在其中显示 MessageBox 如何在几秒钟后自动关闭消息框 您将需要创建自己的窗口 其隐藏代码包含加载的处理程序和计时器处理程序 如下所示 private void Window Loaded obj
  • 在 iOS 中将图像保存到 SQLite 以及从 SQLite 检索图像

    我正在尝试将图像保存到 Sqlite 然后将图像加载到 UIImageView 但它没有得到工作 我不知道出了什么问题 这是我正在使用的代码 谁能帮我解决这个问题 void saveImage sqlite3 stmt compiledSt