OC imageIO完成渐进加载图片

本文探讨了如何利用Apple的imageIO框架实现图片的渐进加载,特别是从网络加载大图的情况。介绍了三种常见的渐进加载模式,并详细解释了如何通过创建CGImageSource并利用URLConnection代理方法,逐步接收和更新图片数据。通过理解文件格式如BMP的结构,说明了如何在接收少量数据时构建并逐步完善图片。下期将介绍关于block的内容。
摘要由CSDN通过智能技术生成

通常来说我们用来加载图片都是用的sdwebimage来加载的,这次我们看看自带frramework的渐进加载。

一、常见渐进加载图片模式

目前我们看到的渐进加载主要有以下三种实现方式:

(1)依次从web上加载不同尺寸的图片,从小到大。最开始先拉取一个小缩略图做拉伸显示,然后拉取中等规格的图,拉取完毕直接覆盖显示,最后拉取原图,拉取完成后显示原图。

(2)直接从web上拉取最大的图片,每接受一点儿数据就显示一点儿图片,这样就会实现从下到下一点点刷新出来的效果。

(3)结合第1种和第2种,先拉取一个缩略图做拉伸显示,然后采用第二种方法直接拉取原图,这样即可以实现渐进加载,也可以节省几次中间的网络请求。

二、通过imageIO实现图片的渐进加载

imageIO的Guide中原话如此:

“if you have a very large image, or are loading image data over the web,you may want to creat an incremental image source so that you can draw the image data as you accumulate it.”

“如果你想加载一副特别大的图片,或者从网络上加载一副图片,你可以通过创建一个imagesource实现渐进加载的效果。”

我们也都加载过图片,当分辨率特别大的时候,整幅图片加载到内存时,内存吃不消,就会崩溃。现在想想对于这种超大图片处理,我们可以采用分片的方式进行,每次只需要处理一小块图片,这个我们慢慢去实现。

今天讨论的是CGImageSource实现从w

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值