やりたかったこと
iOS6以上で、画像中にQRコードがあるかどうか判定したかった
実現方法
ZBarのiOS向けSDKがあったのでこれで。
http://zbar.sourceforge.net/iphone/
Documents
http://zbar.sourceforge.net/iphone/sdkdoc/
ZBarSDKを導入後、以下のようにしてUIImage中にQRコードが存在するか判定できた。
-(BOOL)hasQRCode:(UIImage *)image
{
ZBarImage *zbarimg = [[ZBarImage alloc] initWithCGImage:image.CGImage];
ZBarImageScanner *scanner = [[ZBarImageScanner alloc] init];
BOOL hasqr = [scanner scanImage:zbarimg];
return hasqr;
}
精度
Google画像検索で10個くらいQRコードを読んでみたが、一個以外読み取れた。
LINEアプリ上に表示されたQRコードのスクリーンショットでも読み込めたので、画像いっぱいにQRコードが表示されて無くても読み取れる模様。
ライセンス
SDKのライセンスについては以下を参照してください。(正直詳しいこと適当に言えない)
http://zbar.sourceforge.net/iphone/sdkdoc/licensing.html
その他にできる操作
- もちろん読み取った文字列も取得できます。
- ZBarReaderControllerを使えばカメラロールでユーザーが選んだ画像に対して読み取りをかけられます。