SDWebImageでアニメーションgifとWebPを表示させる
SDWebImageはなかなか優秀な子で、JPEGやPNG以外にもGIF、WebP形式の画像も表示できるんですね!
アニメーションGIFを使えば表現の範囲が広がるし、WebPを使うと画像の容量が小さくなるので、サーバーや通信帯域などのインフラ資源を有効に使うことができますね。
GIFの表示
これは簡単!
通常、JPEGやPNGファイルを表示しているやり方でURLをGIFファイルのURLに書き換えるだけ。
UIImageView* imageview = [[UIImageView alloc] initWithFrame:CGRectMake(10, 330, 200, 150)]; [imageview sd_setImageWithURL:[NSURL URLWithString:@"https://dl.dropboxusercontent.com/u/36343998/bicycle-gif.gif"] placeholderImage:[UIImage imageNamed:@"noImage.png"] options:SDWebImageCacheMemoryOnly]; [self.view addSubview:imageview];
WebPの表示
これもソース部分はGIFと同じです。
UIImageView* imageview = [[UIImageView alloc] initWithFrame:CGRectMake(10, 30, 275, 184)]; [imageview sd_setImageWithURL:[NSURL URLWithString:@"http://www.gstatic.com/webp/gallery/1.webp"] placeholderImage:[UIImage imageNamed:@"noImage.png"] options:SDWebImageCacheMemoryOnly]; [self.view addSubview:imageview];
但し、WebPの場合は下準備が必用です。
cocoaPodの仕込み
cocoaPodsでWebPはSub specs
となっているのでpodfileは以下のようにWebPを指定します。
pod 'SDWebImage', '~> 3.7.1' pod 'SDWebImage/WebP', '~> 3.7.1'
Xcodeの仕込み
このままではまだWebPが表示されません。
TARGET>Pods-SDWebImageのPreprocessingの設定でPreprocessor MacrosにSD_WEBP=1
と追記します。
これで、WebPファイルを表示できるようになりました! めでたしめでたし。