利用FMDB存储图片类型的数据

本文介绍如何在iOS应用中将UIImage转换为NSData并存储到SQL数据库的BLOB字段,以及从数据库读取NSData并转换回UIImage的过程,以实现图片缓存功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

参考博客

  1. SQL数据类型
  2. UIImage转NSData和NSData转UIImage

实现方法

  1. 在利用FMDB写知乎日报的缓存功能时,首页需要将每条新闻的标题和图片缓存下来,以便没网时也能加载出数据不至于崩。标题缓存很简单,直接存入建好的数据库的表中就好。
  2. 至于图片,可以直接调用SDWebImage的
    [self.mainView.tableViewCell.rightImageView sd_setImageWithURL:[NSURL URLWithString:url placeholderImage:[UIImage imageNamed:@"placeholder.jpg"]];
    方法加载图片,因为SDWebImage会让用户浏览过的图片会默认缓存在cache与磁盘上,缓存默认保存一星期时间。但是这样会十分占用磁盘内存,所以我就想不借用SDWebImage的方法实现图片的缓存,方法如下。
  3. 因为SQL类型里没有直接对于图片的存储类型,所以我们先要将请求到的图片转为NSData类型
    NSData *imageData = UIImagePNGRepresentation(aimae);
    ,然后存入数据库表中相应位置(NSData对应SQL中BLOB数据类型)。最后在需要调用图片处再从数据库中读取数据转换为UIImage类型即可,然后存入数据库表中相应位置(NSData对应SQL中BLOB数据类型)。最后在需要调用图片处再从数据库中读取数据转换为UIImage类型即可
 NSData *imageData = [NSData dataWithContentsOfFile: imagePath];
 UIImage *image = [UIImage imageWithData: imageData];
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值