まいまいワークス

主にiPhoneアプリの開発で考えた事、調べた事、感じた事などを記していきます。

SDWebImageでアニメーションgifとWebPを表示させる

SDWebImageはなかなか優秀な子で、JPEGPNG以外にもGIF、WebP形式の画像も表示できるんですね!
アニメーションGIFを使えば表現の範囲が広がるし、WebPを使うと画像の容量が小さくなるので、サーバーや通信帯域などのインフラ資源を有効に使うことができますね。

GIFの表示

これは簡単!
通常、JPEGPNGファイルを表示しているやり方で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と追記します。

f:id:cccookie:20150107153330p:plain

これで、WebPファイルを表示できるようになりました! めでたしめでたし。