Kingfisher

Kingfisher提供图像下载功能,可以通过这款软件配置网络图像下载方案,让用户可以从web下载图像使用,您可以配置图像缓存方案,直接输入远程图像地址就可以读取图像资源,也可以从数据提供商获取图像,软件可以获取的图像来源方案还是很多的,支持来自本地文件的图像,LocalFileImageDataPvider是符合的类型ImageDataPvider,它用于从本地文件L加载图像,支持图片来自Base Stng,使用BaseImageDataPvider以从编码数据的base提供图像,您期望的所有其他功能(例如缓存或图像处理器)都应该像从L获取图像时一样工作,支持从Asset生成图像,用于AssetImageDataPvider从L或Asset在给定时间生成图像!

相关推荐 软件介绍 下载地址
Kingfisher官方版v6.3.0 Kigfishe提供图像下载功能,可以通过这款软件配置网络图像下载方案,让用户可以从web下载图像使用,您可以配置图像缓存方案,直接输入远程图像地址就可以读取图像资源,也可以从数据提供商获取图像,软件可以获取的图像来源方案还是很多的,支持来自本地文件的图… 点击查看
Softaken Outlook PST Extractor官方版v3.0 SfakeOulkPSTExac是一款功能强大的PST提取工具,该程序旨在帮助您通过简单的步骤从PST文件中提取附件、电子邮件地址、历、联系人等任何常见数据。其具备了简单直观的作界面,导入要提取的PST文件,随后选择提取类型、输出格式、输出位置,选择提取后… 点击查看
115电脑官方版v11513.0.0.17 115电脑版是一个115、115组织、浏览器的PC客户端,与115服务完美整合。支持115快捷登录、收藏夹云同步、文件拖拽备份、批量上传下载等功能。支持115组织事务,让你随时掌握组织协作动态。115基本介绍115是国内最早一批上线的云存储产品,致力于为用户提供安全稳定… 点击查看

Kingfisher软件功能

Kingfisher是一个功能强大的纯Swift库,用于从Web下载和缓存图像。它为您提供了使用纯Swift方法在下一个应用程序中处理远程图像的机会。

特征

异步图像下载和缓存。

从LSession基于网络的连接或本地提供的数据中加载图像。

提供了有用的图像处理器和滤镜。

内存和磁盘的多层混合高速缓存。

对缓存行为的精细控制。可自定义的到期期和大小限制。

取消下载并自动重用以前下载的内容以提高能。

组件。根据需要分别使用下载器,缓存系统和图像处理器。

预取图像并从缓存中显示它们以增强您的应用程序。

查看,和的扩展名UIImageView,以直接从L设置图像。NSImageViewNSButtonUIButton

设置图像时内置的过渡动画。

加载图像时可自定义的占位符和指示符。

易于扩展的图像处理和图像格式。

低数据模式支持。

SwiftUI支持。

Kingfisher软件特色

1、下载高分辨率图像。

2、对其进行下采样以匹配图像视图的大小。

3、使它以给定的半径圆角化。

4、下载时显示系统指示器和占位符图像。

5、准备好后,它会以“淡入”效果为小缩略图动画化。

6、原始的大映像也被缓存到磁盘中以备后用,从而避免了在详细视图中再次下载它。

7、任务完成时(无论是成功还是失败)都会打印控制台志。

Kingfisher教程

最常见的任务

视图扩展基于API的(对UIImageView,NSImageView,UIButton和NSButton)应该是你的首选只要有可能。它使您的代码简单而优雅。

用设置图像 L

let url = L(字符串:“ ”)

imageView。KF。setImage(带有:url)

这个简单的代码:

1、是否在key下缓存了图像url.absoluteStng。

2、如果在缓存(在内存或磁盘)中找到了映像,请将其设置为imageView.image。

3、如果不是,请创建一个请求并从下载url。

4、将下载的数据转换为UIImage对象。

5、将映像缓存到内存缓存,并将数据存储到磁盘缓存。

6、设置imageView.image以显示它。

稍后,当您再次调用setImage同一个命令url时,除非清除了缓存,否则仅执行前两个步骤。

显示一个占位符

let image = UIImage(名为:“ deflt_pfile_icon ”)

imageView。KF。setImage(带有:url,占位符:image)

该image会显示在imageView从同时下载url。

您还可以使用自定义UIView或NSView占位符,使其符合以下条件Placeholder:

在MyView向/从除去实例将被添加imageView根据需要。

下载时显示加载指示器

UIActivityIndicatorView下载时在图像视图的显示一个。

淡入下载的图像

imageView.kf.setImage(with: url, options: [.transition(.fade(0.2))])

完成处理程序

圆角图像

在没有UI的情况下获取图像

有时,您只想使用Kingfisher来获取图像,而不是将其设置为图像视图。用途KingfisherMar:

快取

翠鸟(Kingfisher)正在使用混合存储ImageCache来管理缓存的图像,它由内存存储和磁盘存储组成,并提供了高级API来作缓存系统。如果未指定,该ImageCache.deflt实例将在Kingfisher中使用。

使用另一个缓存键

默认情况下,absoluteStngofurl将用作缓存键。您可以通过ImageResource使用自己的密钥创建一个来更改它。

翠鸟稍后将使用cacheKey来搜索缓存中的图像。对不同的图像使用不同的键。

缓存中是否有图像

如果在检索图像时使用了处理器,则处理后的图像将存储在缓存中。在这种情况下,还要传递处理器标识符:

从缓存中获取图像

设置缓存限制

对于内存存储,可以设置其totalCostLimit和countLimit:

默认情况下,totalCostLimit内存缓存的容量为设备中总内存的25%,并且图像数量没有限制。

对于磁盘存储,您可以sizeLimit在文件系统上设置空间。

设置缓存的默认过期时间

内存存储和磁盘存储都具有默认的过期设置。从上次访问开始,内存存储器中的图像将在5分钟后过期,而磁盘存储器中的图像则是一周。您可以通过以下方式更改此值:

如果要在缓存某个图像时覆盖此到期时间,请传入一个选项:

过期的内存缓存将清除2分钟。如果您希望它更频繁地发生:

存储图像以手动缓存

默认情况下,查看扩展方法,KingfisherMar并将存储检索到的图像以自动缓存。但是,您也可以存储图像以缓存自己:

如果您拥有该图像的原始数据,还可以将其传递给ImageCache,这将有助于Kingfisher确定应以哪种格式存储图像:

手动从缓存中删除图像

翠鸟自动管理其缓存。但是您仍然可以手动从缓存中删除某个图像:

cache.deflt.removeImage(forKey: cacheKey)

或者,通过更多控制:

清除缓存

报告磁盘存储大小

创建自己的缓存并使用它

手动下载图像

通常,您可以使用Kingfisher的视图扩展方法或KingfisherMar检索图像。他们将尝试首先在缓存中搜索,以防止不必要的下载任务。在某些情况下,如果您只想下载目标图像而不缓存它:

发送前修改请求

对图像资源具有权限控制后,可以使用以下命令修改请求.requestModifier:

异步请求修饰符

如果您需要在修改请求之前执行一些异步作,请创建一个类型并遵循AsyncImageDownloadRequestModifier:

与上述类似,您可以使用.requestModifier来使用此修饰符。在这种情况下,setImage(with:options:)orImageDownloader.downloadImage(with:options:)方法将不再返回DownloadTask(因为它不会立即启动下载任务)。相反,onDownloadTaskStarted如果需要引用任务,则可以从回调中观察到一个:

取消下载任务

如果开始下载,DownloadTask将返回a。您可以使用它来取消正在进行的下载任务:

如果调用时任务已经完成task?.cancel,则不会发生任何事情。

类似地,视图扩展方法也返回DownloadTask。您可以存储和取消它:

或者,您可以调用cancelDownloadTask图像视图来取消当前的下载任务:

身份验证 NSLCredential

在ImageDownloader使用默认的行为(.performDefltHandling当从接收到一个)。如果您需要提供自己的凭据,请设置thenticationChallengeResponder:

上一篇 2023-02-16
下一篇 2022-12-29

相关推荐

  • Kingfisher

    Kingfisher提供图像下载功能,可以通过这款软件配置网络图像下载方案,让用户可以从web下载图像使用,您可以配置图像缓存方案,直接输入远程图像地址就可以读取图像资源,也可...
正在提交中,请稍等片刻...

发表回复

请登录后评论...
登录后才能评论

评论列表 (0条)