Latest1.0.5
Homepagehttps://github.com/lizilong1989/LongImageCache
LicensePersonal zilong.li
Platformsios 6.0, requires ARC
DependenciesLongDispatch, LongRequest
FrameworksSecurity
Authors

这是一个简单的图片缓存,同时使用了LongRequest(文件下载),LongDispatch(多任务),实现了一个较为完整的缓存机制,默认支持gif图片的播放

集成

1.使用 Cocoapods 来集成LongImageCache, 集成方法如下:

pod 'LongImageCache'

使用方法

图片缓存使用方法

//首先引入header
#import "UIImageView+LongCache.h"

//缓存图片
NSString *url = @"http://127.0.0.1/test.jpg";
[imageView setImageWithUrl:url placeholderImage:nil toDisk:YES];

图片浏览使用方法

#import "LongPhotoBrowser.h"

//进图图片浏览
[[LongPhotoBrowser sharedInstance] showWithUrls:@[@"http://127.0.0.1/test.jpg"] withIndex:0];

播放本地图片

//首先引入header
#import "UIImageView+LongCache.h"

UIImageView *imageView = [[UIImageView alloc] init];
//设置图片文件数组
[imageView setImagesWithNames:@[@"xxx1.png",@"xxx2.png",@"xxx3.png"]];
//这是播放间隔,这里用displaylink实现,所以不能小于1/60
imageView.animationDuration = 1/24;
//播放图片
[imageView startAnimating];

运行Demo

进入ImageCacheDemo路径下执行,点击ImageCacheDemo.xcworkspace即可运行

pod install

播放GIF与SDWebImage性能对比

相同两张gif图片,使用iphone8模拟器,虽然使用了一定的cpu,但是对内存消耗差距十分明显(选取的gif图片帧数较多,分别是209和135)

使用SDImageCache播放GIF图片时的内存和CPU消耗:

image

播放效果:

image

使用LongImageCache播放GIF图片时的内存和CPU消耗:

image

播放效果:

image

使用的gif素材:

LongImageCache
LongImageCache

Relase Note

v1.0.5

  • 优化缓存set和get性能以及写入本地的性能(根据key的hash值,写入文件时分配不同的异步线程队列,提高执行效率)
  • 添加imageview可以设置多张图片并播放(非gif情况)

v1.0.4

  • UIImageView+LongCache添加可以设置本地gif图片
  • 针对UIImageView+LongCache进行优化
  • LongPhotoBrowser图片浏览添加简单功能
  • 修复图片下载阻塞的bug

v1.0.3

  • 提高gif图片播放性能,降低内存和cpu的消耗
  • 对imagecache进行性能优化

v1.0.2

  • 修复设置空url导致的crash问题

v1.0.1

  • 添加图片浏览功能的LongPhotoBrowser,可以简单浏览图片

v1.0.0

  • 轻量级的ImageCache,可以支持网络图片加载,gif播放等功能

Latest podspec

{
    "name": "LongImageCache",
    "version": "1.0.5",
    "license": {
        "type": "Personal",
        "text": "zilong.li"
    },
    "summary": "An Objective-C tool for Cache",
    "homepage": "https://github.com/lizilong1989/LongImageCache",
    "authors": {
        "zilong.li": "[email protected]"
    },
    "source": {
        "git": "https://github.com/lizilong1989/LongImageCache.git",
        "tag": "1.0.5"
    },
    "platforms": {
        "ios": "6.0"
    },
    "requires_arc": true,
    "frameworks": "Security",
    "xcconfig": {
        "OTHER_LDFLAGS": "-ObjC"
    },
    "dependencies": {
        "LongDispatch": [
            "~> 1.0.3"
        ],
        "LongRequest": [
            "~> 1.0.1"
        ]
    },
    "default_subspecs": "Core",
    "subspecs": [
        {
            "name": "Core",
            "source_files": "src/**/*.{h,m,mm}",
            "public_header_files": "src/**/*.{h}"
        },
        {
            "name": "WebP",
            "source_files": "3rdparty/webp/include/*.h",
            "vendored_libraries": [
                "3rdparty/webp/lib/libwebp.a",
                "3rdparty/webp/lib/libwebpdecoder.a"
            ],
            "xcconfig": {
                "GCC_PREPROCESSOR_DEFINITIONS": "$(inherited) LONG_WEBP=1"
            }
        }
    ]
}

Pin It on Pinterest

Share This