酢ろぐ!

カレーが嫌いなスマートフォンアプリプログラマのブログ。

SwiftでSDWebImageを使ってダンロードした画像を加工してUIImageViewに表示する

iOSでネットワーク上のリソースをUIImageViewに表示するライブラリに「SDWebImage」というものがあります。導入方法については以下の記事で紹介しました。

SDWebImageを使ってUIImageViewに画像を表示させるには下記のように書くことができます。

// import SDWebImage

let url = NSURL(string: "http://example.com/hogehoge.jpg")!

self.thumbnailView.sd_setImageWithURL(url, placeholderImage: nil) { (image, error, cacheType, u) -> Void in

})

通常はこの書き方で事足りるのですが、ダウンロードしてきた画像にブラー等のエフェクトを掛けてから表示したい場合には、SDWebImageManagerを使うことができます。

let url = NSURL(string: "http://example.com/hogehoge.jpg")!

SDWebImageManager.sharedManager().downloadImageWithURL(url,
    options: .CacheMemoryOnly, progress: nil) { [weak self] (image, error, cacheType, isDownloaded, u)  -> Void in
        // ダウンロードが完了後に加工してImageViewに設定する
        self?.imageView.image = image.effectImage()
}

同じようなメソッドにSDWebImageDownloader#downloadImageWithURLがありますが、こちらの方はキャッシュしてくれません。

関連記事

この他にもiOSアプリ開発で見つけたネタや悩んだ内容など紹介しています。Tipsをまとめておりますのでこちらのページをご参照ください。