Focus on avatar caching.

Related tags

Image Navi
Overview

Navi

Navi is designed for avatar caching, with style.

The name of Navi from movie Avatar.

Requirements

Swift 3.1, iOS 8.0

  • Swift 2.3, use version 0.5.0
  • Swift 3.0, use version 1.1.0

Usage

  1. Make your User conform Avatar protocol.

    protocol Avatar {
    
        var url: URL? { get }
        var style: AvatarStyle { get }
        var placeholderImage: UIImage? { get }
        var localOriginalImage: UIImage? { get }
        var localStyledImage: UIImage? { get }
    
        func save(originalImage: UIImage, styledImage: UIImage)
    }
  2. And, set avatar for your avatarImageView

    avatarImageView.navi_setAvatar(userAvatar)

Check the demo for more information.

另有中文介绍

Installation

Carthage

github "nixzhu/Navi"

CocoaPods

pod 'Navi'

Contact

NIX @nixzhu

License

Navi is available under the MIT license. See the LICENSE file for more info.

You might also like...
Alter SDK is a cross-platform SDK consisting of a real-time 3D avatar system, facial motion capture, and an Avatar Designer component built from scratch for web3 interoperability and the open metaverse.
Alter SDK is a cross-platform SDK consisting of a real-time 3D avatar system, facial motion capture, and an Avatar Designer component built from scratch for web3 interoperability and the open metaverse.

Alter SDK is a cross-platform SDK consisting of a real-time 3D avatar system, facial motion capture, and an Avatar Designer component built from scratch for web3 interoperability and the open metaverse.

Avatar provider for iOS tweak Contacy.

ContacyAvatarProvider Usage copy iphone_Contacy_avatar_provider.nic.tar to $THEOS/templates/ios/iphone/ $THEOS/bin/nic.pl and choose Contacy_avatar_pr

Easy customizable avatar image asynchronously with progress bar animated
Easy customizable avatar image asynchronously with progress bar animated

JDSwiftAvatarProgress ##Objective-C JDAvatarProgress is available in Objective-C also, JDAvatarProgress Usage To run the example project, clone the re

iOS Swift class to create circular or rounded avatar images
iOS Swift class to create circular or rounded avatar images

SwiftyAvatar iOS Swift 3.0 UIimage class Create awesome circular avatar images! IBInspectable attributes accessible from the identity inspector. Round

VTuber Cam, macOS app that displays an avatar using a virtual camera.
VTuber Cam, macOS app that displays an avatar using a virtual camera.

日本語 VCam macOS app that displays an avatar using a virtual camera. You can display a virtual avatar on Zoom or Google Meet, or etc. This is useful for

CachyKit - A Caching Library is written in Swift that can cache JSON, Image, Zip or AnyObject with expiry date/TTYL and force refresh.
CachyKit - A Caching Library is written in Swift that can cache JSON, Image, Zip or AnyObject with expiry date/TTYL and force refresh.

Nice threadsafe expirable cache management that can cache any object. Supports fetching from server, single object expire date, UIImageView loading etc.

Kingfisher is a powerful, pure-Swift library for downloading and caching images from the web
Kingfisher is a powerful, pure-Swift library for downloading and caching images from the web

Kingfisher is a powerful, pure-Swift library for downloading and caching images from the web. It provides you a chance to use a pure-Swift way to work

🍁🥓 Lightweight and fast Swift library for image downloading, caching and transformations
🍁🥓 Lightweight and fast Swift library for image downloading, caching and transformations

MapleBacon Introduction MapleBacon is a lightweight and fast Swift library for downloading and caching images. Example The folder Example contains a s

An extremely high-performance, lightweight, and energy-efficient pure Swift async web image loader with memory and disk caching for iOS and  Watch.

KFSwiftImageLoader KFSwiftImageLoader is an extremely high-performance, lightweight, and energy-efficient pure Swift async web image loader with memor

A high-performance image library for downloading, caching, and processing images in Swift.
A high-performance image library for downloading, caching, and processing images in Swift.

Features Asynchronous image downloader with priority queuing Advanced memory and database caching using YapDatabase (SQLite) Guarantee of only one ima

📱  A strongly-typed, caching GraphQL client for iOS, written in Swift.
📱  A strongly-typed, caching GraphQL client for iOS, written in Swift.

Apollo iOS is a strongly-typed, caching GraphQL client, written in Swift. It allows you to execute queries and mutations against a GraphQL server, and

iOS Offline Caching for Web Content

Mattress A Swift framework for storing entire web pages into a disk cache distinct from, but interoperable with, the standard NSURLCache layer. This i

A caching and consistency solution for immutable models.

🚀 Data Rocket Data is a model management system with persistence for immutable models. Motivation Immutability has many benefits, but keeping models

Melodic Caching for Swift
Melodic Caching for Swift

Johnny is a generic caching library written for Swift 4. Features Johnny can cache any model object that conforms to the Cachable protocol. Out-of-the

Swift caching library

Cache A generic caching library for Swift. Cache depends on Foundation. This is still very much a work in progress. Usage Cache provides a simple Cach

📽 A video player for SwiftUI, support for caching, preload and custom control view.
📽 A video player for SwiftUI, support for caching, preload and custom control view.

Features QuickStart Advances Installation Requirements License Demo Clone or download the project. In the terminal, run swift package resolve. Open Vi

Advanced framework for loading, caching, processing, displaying and preheating images.
Advanced framework for loading, caching, processing, displaying and preheating images.

Advanced framework for loading, caching, processing, displaying and preheating images. This framework is no longer maintained. Programming in Swift? C

Twitter Image Pipeline is a robust and performant image loading and caching framework for iOS clients

Twitter Image Pipeline (a.k.a. TIP) Background The Twitter Image Pipeline is a streamlined framework for fetching and storing images in an application

Easy HTTP Networking in Swift a NSURLSession wrapper with image caching support
Easy HTTP Networking in Swift a NSURLSession wrapper with image caching support

Networking was born out of the necessity of having a simple networking library that doesn't have crazy programming abstractions or uses the latest rea

Comments
  • Gray color space model support

    Gray color space model support

    CGBitmapContextCreate: unsupported parameter combination: 8 integer bits/component; 16 bits/pixel; Gray color space model; kCGImageAlphaPremultipliedFirst; 416 bytes/row. Valid parameters for Gray color space model are: 8 bits per pixel, 8 bits per component, kCGImageAlphaNone 8 bits per pixel, 8 bits per component, kCGImageAlphaOnly 16 bits per pixel, 16 bits per component, kCGImageAlphaNone 32 bits per pixel, 32 bits per component, kCGImageAlphaNone|kCGBitmapFloatComponents See Quartz 2D Programming Guide (available online) for more information. Oct 21 10:34:19 LuooFM[6518] : CGContextDrawImage: invalid context 0x0. Backtrace: <TToFE4NaviCSo7UIImage19navi_imageWithAlphafS0_FT_S0+34> <TFE4NaviCSo7UIImage26navi_roundWithCornerRadiusfS0_FTV12CoreGraphics7CGFloat11borderWidthS2__GSqS0_+66> <TToFE4NaviCSo7UIImage26navi_roundWithCornerRadiusfS0_FTV12CoreGraphics7CGFloat11borderWidthS2__GSqS0_+54> <TFE4NaviCSo7UIImage25navi_avatarImageWithStylefS0_FOS_11AvatarStyleS0+805> <TFFFFC4Navi9AvatarPodP33_8B0B5A6784EFC9FC4DDC7EE8BE0D2AF923completeRequestsWithURLFS0_FTCSo5NSURL5imageCSo7UIImage_T_U <TTRXFo__dT__XFdCb__dT_+39> <_dispatch_call_block_and_release+12> <_dispatch_client_callout+8> <_dispatch_root_queue_drain+1829> <dispatch_worker_thread3+111> <pthread_wqthread+1129> Oct 21 10:34:19 LuooFM[6518] : CGBitmapContextCreateImage: invalid context 0x0. Backtrace: <TFE4NaviCSo7UIImage19navi_imageWithAlphafS0_FT_S0+811> <TToFE4NaviCSo7UIImage19navi_imageWithAlphafS0_FT_S0+34> <TFE4NaviCSo7UIImage26navi_roundWithCornerRadiusfS0_FTV12CoreGraphics7CGFloat11borderWidthS2__GSqS0+66> <TToFE4NaviCSo7UIImage26navi_roundWithCornerRadiusfS0_FTV12CoreGraphics7CGFloat11borderWidthS2__GSqS0+54> <TFE4NaviCSo7UIImage25navi_avatarImageWithStylefS0_FOS_11AvatarStyleS0+805> <TFFFFC4Navi9AvatarPodP33_8B0B5A6784EFC9FC4DDC7EE8BE0D2AF923completeRequestsWithURLFS0_FTCSo5NSURL5imageCSo7UIImage_T_U <TTRXFo__dT__XFdCb__dT+39> <_dispatch_call_block_and_release+12> <_dispatch_client_callout+8> <_dispatch_root_queue_drain+1829> <_dispatch_worker_thread3+111> <_pthread_wqthread+1129>

    opened by CodeEagle 4
  • wakeAvatar方法中调用localOriginalImage方法时机

    wakeAvatar方法中调用localOriginalImage方法时机

    1、在localOriginalImage方法的调用不应该是在localStyledImage之后吗?为什么是在添加sharedInstance.requestPool.addRequest(request)之后, 2、既然在sharedInstance.requestPool.addRequest(request)之后调用localOriginalImage,为什么不在获取image后,执行removeRequest(request)方法,删除请求呢 image

    opened by xylxi 0
  • RGB color space model; kCGImageAlphaLast;

    RGB color space model; kCGImageAlphaLast;

    CGBitmapContextCreate: unsupported parameter combination: 8 integer bits/component; 32 bits/pixel; RGB color space model; kCGImageAlphaLast; 800 bytes/row. Valid parameters for RGB color space model are: 16 bits per pixel, 5 bits per component, kCGImageAlphaNoneSkipFirst 32 bits per pixel, 8 bits per component, kCGImageAlphaNoneSkipFirst 32 bits per pixel, 8 bits per component, kCGImageAlphaNoneSkipLast 32 bits per pixel, 8 bits per component, kCGImageAlphaPremultipliedFirst 32 bits per pixel, 8 bits per component, kCGImageAlphaPremultipliedLast 64 bits per pixel, 16 bits per component, kCGImageAlphaPremultipliedLast 64 bits per pixel, 16 bits per component, kCGImageAlphaNoneSkipLast 128 bits per pixel, 32 bits per component, kCGImageAlphaNoneSkipLast |kCGBitmapFloatComponents 128 bits per pixel, 32 bits per component, kCGImageAlphaPremultipliedLast |kCGBitmapFloatComponents See Quartz 2D Programming Guide (available online) for more information. Oct 21 11:23:51 LuooFM[19236] : CGContextConcatCTM: invalid context 0x0. Backtrace: <TToFE4NaviCSo7UIImage17navi_resizeToSizefS0_FTVSC6CGSize13withTransformVSC17CGAffineTransform14drawTransposedSb20interpolat <TFE4NaviCSo7UIImage17navi_resizeToSizefS0_FTVSC6CGSize24withInterpolationQualityOSC22CGInterpolationQuality_GSqS0+495> <TToFE4NaviCSo7UIImage17navi_resizeToSizefS0_FTVSC6CGSize24withInterpolationQualityOSC22CGInterpolationQuality_GSqS0_+60> <TFE4NaviCSo7UIImage23navi_centerCropWithSizefS0_FVSC6CGSizeGSqS0_+697> <TToFE4NaviCSo7UIImage23navi_centerCropWithSizefS0_FVSC6CGSizeGSqS0_+54> <TFE4NaviCSo7UIImage25navi_avatarImageWithStylefS0_FOS_11AvatarStyleS0+733> <TFFFFC4Navi9AvatarPodP33_8B0B5A6784EFC9FC4DDC7EE8BE0D2AF923completeRequestsWithURLFS0_FTCSo5NSURL5imageCSo7UIImage_T <TTRXFo__dT__XFdCb__dT_+39> <_dispatch_call_block_and_release+12> <dispatch_client_callout+8> <dispatch_root_queue_drain+1829> <dispatch_worker_thread3+111> <pthread_wqthread+1129> Oct 21 11:23:51 LuooFM[19236] : CGContextSetInterpolationQuality: invalid context 0x0. Backtrace: <TToFE4NaviCSo7UIImage17navi_resizeToSizefS0_FTVSC6CGSize13withTransformVSC17CGAffineTransform14drawTransposedSb20interpolat <TFE4NaviCSo7UIImage17navi_resizeToSizefS0_FTVSC6CGSize24withInterpolationQualityOSC22CGInterpolationQuality_GSqS0+495> <TToFE4NaviCSo7UIImage17navi_resizeToSizefS0_FTVSC6CGSize24withInterpolationQualityOSC22CGInterpolationQuality_GSqS0+60> <TFE4NaviCSo7UIImage23navi_centerCropWithSizefS0_FVSC6CGSizeGSqS0+697> <TToFE4NaviCSo7UIImage23navi_centerCropWithSizefS0_FVSC6CGSizeGSqS0+54> <TFE4NaviCSo7UIImage25navi_avatarImageWithStylefS0_FOS_11AvatarStyleS0+733> <TFFFFC4Navi9AvatarPodP33_8B0B5A6784EFC9FC4DDC7EE8BE0D2AF923completeRequestsWithURLFS0_FTCSo5NSURL5imageCSo7UIImage_T <TTRXFo__dT__XFdCb__dT+39> <_dispatch_call_block_and_release+12> <dispatch_client_callout+8> <dispatch_root_queue_drain+1829> <dispatch_worker_thread3+111> <pthread_wqthread+1129> Oct 21 11:23:51 LuooFM[19236] : CGContextDrawImage: invalid context 0x0. Backtrace: <TToFE4NaviCSo7UIImage17navi_resizeToSizefS0_FTVSC6CGSize13withTransformVSC17CGAffineTransform14drawTransposedSb20interpolat <TFE4NaviCSo7UIImage17navi_resizeToSizefS0_FTVSC6CGSize24withInterpolationQualityOSC22CGInterpolationQuality_GSqS0+495> <TToFE4NaviCSo7UIImage17navi_resizeToSizefS0_FTVSC6CGSize24withInterpolationQualityOSC22CGInterpolationQuality_GSqS0+60> <TFE4NaviCSo7UIImage23navi_centerCropWithSizefS0_FVSC6CGSizeGSqS0+697> <TToFE4NaviCSo7UIImage23navi_centerCropWithSizefS0_FVSC6CGSizeGSqS0+54> <TFE4NaviCSo7UIImage25navi_avatarImageWithStylefS0_FOS_11AvatarStyleS0+733> <TFFFFC4Navi9AvatarPodP33_8B0B5A6784EFC9FC4DDC7EE8BE0D2AF923completeRequestsWithURLFS0_FTCSo5NSURL5imageCSo7UIImage_T <TTRXFo__dT__XFdCb__dT+39> <_dispatch_call_block_and_release+12> <_dispatch_client_callout+8> <_dispatch_root_queue_drain+1829> <dispatch_worker_thread3+111> <pthread_wqthread+1129> Oct 21 11:23:51 LuooFM[19236] : CGBitmapContextCreateImage: invalid context 0x0. Backtrace: <TFE4NaviCSo7UIImage17navi_resizeToSizefS0_FTVSC6CGSize13withTransformVSC17CGAffineTransform14drawTransposedSb20interpolatio <TToFE4NaviCSo7UIImage17navi_resizeToSizefS0_FTVSC6CGSize13withTransformVSC17CGAffineTransform14drawTransposedSb20interpola <TFE4NaviCSo7UIImage17navi_resizeToSizefS0_FTVSC6CGSize24withInterpolationQualityOSC22CGInterpolationQuality_GSqS0+495> <TToFE4NaviCSo7UIImage17navi_resizeToSizefS0_FTVSC6CGSize24withInterpolationQualityOSC22CGInterpolationQuality_GSqS0+60 <TFE4NaviCSo7UIImage23navi_centerCropWithSizefS0_FVSC6CGSizeGSqS0+697> <TToFE4NaviCSo7UIImage23navi_centerCropWithSizefS0_FVSC6CGSizeGSqS0+54> <TFE4NaviCSo7UIImage25navi_avatarImageWithStylefS0_FOS_11AvatarStyleS0+733> <TFFFFC4Navi9AvatarPodP33_8B0B5A6784EFC9FC4DDC7EE8BE0D2AF923completeRequestsWithURLFS0_FTCSo5NSURL5imageCSo7UIImage_T <TTRXFo__dT__XFdCb__dT+39> <_dispatch_call_block_and_release+12> <_dispatch_client_callout+8> <_dispatch_root_queue_drain+1829> <_dispatch_worker_thread3+111> <_pthread_wqthread+1129>

    opened by CodeEagle 11
Owner
null
Easy customizable avatar image asynchronously with progress bar animated

JDSwiftAvatarProgress ##Objective-C JDAvatarProgress is available in Objective-C also, JDAvatarProgress Usage To run the example project, clone the re

Jelly Development 86 May 16, 2022
iOS Swift class to create circular or rounded avatar images

SwiftyAvatar iOS Swift 3.0 UIimage class Create awesome circular avatar images! IBInspectable attributes accessible from the identity inspector. Round

Dimitrios Kalaitzidis 183 Dec 17, 2022
Kingfisher is a powerful, pure-Swift library for downloading and caching images from the web

Kingfisher is a powerful, pure-Swift library for downloading and caching images from the web. It provides you a chance to use a pure-Swift way to work

Wei Wang 20.9k Dec 30, 2022
🍁🥓 Lightweight and fast Swift library for image downloading, caching and transformations

MapleBacon Introduction MapleBacon is a lightweight and fast Swift library for downloading and caching images. Example The folder Example contains a s

Jan Gorman 335 Nov 1, 2022
An extremely high-performance, lightweight, and energy-efficient pure Swift async web image loader with memory and disk caching for iOS and  Watch.

KFSwiftImageLoader KFSwiftImageLoader is an extremely high-performance, lightweight, and energy-efficient pure Swift async web image loader with memor

Kiavash Faisali 343 Oct 29, 2022
A high-performance image library for downloading, caching, and processing images in Swift.

Features Asynchronous image downloader with priority queuing Advanced memory and database caching using YapDatabase (SQLite) Guarantee of only one ima

Yap Studios 72 Sep 19, 2022
Advanced framework for loading, caching, processing, displaying and preheating images.

Advanced framework for loading, caching, processing, displaying and preheating images. This framework is no longer maintained. Programming in Swift? C

Alexander Grebenyuk 1.2k Dec 23, 2022
Twitter Image Pipeline is a robust and performant image loading and caching framework for iOS clients

Twitter Image Pipeline (a.k.a. TIP) Background The Twitter Image Pipeline is a streamlined framework for fetching and storing images in an application

Twitter 1.8k Dec 17, 2022
A Swift/SwiftUI utility for caching and displaying images in SwiftUI Views

A Swift/SwiftUI utility for caching and displaying images asynchronously. Built with Swift 5.5 and works with async/await.

王雪铮 Xuezheng Wang 1 May 5, 2022
An extension that gives UIImageView the ability to focus on faces within an image.

FaceAware Sometimes the aspect ratios of images we need to work with don't quite fit within the confines of our UIImageViews. In most cases we can use

Beau Nouvelle 3k Jan 3, 2023