Concorde
This is a framework for downloading and decoding progressive JPEGs easily on iOS and OS X. It uses libjpeg-turbo as underlying JPEG implementation. We vendor version 1.4.0 of the static library from libjpeg-turbo's official release for convenience.
Usage
Simply install it via CocoaPods:
pod 'Concorde'
and then use CCBufferedImageView
which progressively downloads and shows an image:
let imageView = CCBufferedImageView(frame: ...)
if let url = NSURL(string: "http://example.com/yolo.jpg") {
imageView.load(url)
}
If you use Contentful, install the subspec:
pod 'Concorde/Contentful'
and replace your usage of UIImageView
with CCBufferedImageView
to automatically use progressive JPEGs if you have been using the UIImageView
category before. This will work regardless of the original format of your files due to the image transformation functionality of the delivery API.
Manual integration
You can also integrate Concorde as a subproject or download a binary build from the releases section. Please note that those are only provided for iOS at the moment.
License
Copyright (c) 2015 Contentful GmbH. See LICENSE for further details.
CCBufferedImageDecoder
is derived from WebKit, see comments in its file for further copyright details.
The examples use http://pooyak.com/p/progjpeg/, which artificially slows the connection down to 0.5 Kilobyte/second to demonstrate the differences between regular and progressive JPEGs.