日本語の資料がほとんど見つからなかったのでメモ。
インストール
CocoaPodsからインストールするのが簡単です。DLCImagePickerController
を入れましょう。
pod 'DLCImagePickerController'
呼び出し
DLCImagePickerController
のインスタンスを生成してUINavigationController:presentViewController:
で表示します。
DLCImagePickerController:init
ではDLCImagePicker.xib
が使用されてる(ようにハードコードされている!)ので、見た目をカスタマイズしたい場合にはinitWithNibName:bundle:
を使用してカスタマイズしたXIBファイルを食べさせてください。
DLCImagePickerController *picker = [[DLCImagePickerController alloc] init];
picker.delegate = self;
// customize here
picker.outputJPEGQuality = (CGFloat) 0.9; // UIImageJPEGRepresentationの品質
picker.requestedImageSize = CGSizeMake(1024, 1024); // 表示に利用するサイズ?
[self.navigationController presentViewController:picker animated:TRUE completion:nil];
受け取り
DLCImagePickerControllerDelegate
プロトコルを実装します。これはUIImagePickerとほぼ同様のインターフェイスを持ったプロトコルですが、 NSDictionary内にUIImageではなくNSDataが格納されいてる点に注意 してください。画像データ取得時のキーは@"data"
です。
- (void)imagePickerController:(DLCImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info
{
// 画像データは info[@"data"] にNSDataオブジェクトとして格納されている
UIImage *image = [UIImage imageWithData:info[@"data"]];
// UIImagePickerControllerも併用するのであればUIImagePickerControllerOriginalImage等にフォールバックする
if (!image) {
image = [info objectForKey:UIImagePickerControllerOriginalImage];
}
// UIImageをお好きなように調理してください
}
撮影サンプル
モノクロフィルタを選ぶとこんな感じ。撮影部分の周りについている各種ボタンは標準搭載のものです。
トラブルシュート
GPUImage 0.1.2でコンパイルが通らない
Blur関連のメソッドが変更されておりコンパイルが通りません(issue #45)。GPUImage 0.1.1を利用してください。