2015年8月15日土曜日

Google Play services 7.8のバーコードリーダを試してみる

SYSTEM_KDです。

顔検出の記事の続きです。

前回の記事の最後に、バーコードも読めるらしいので、後で試そうと思うと書いたのですが、静止画像から読み取りだけであれば、おもいのほか簡単にできたので、書いておきます。

barcode

方法は、顔検出と同じで、

1.画像の読込

2.バーコード読込

3.結果表示

になります。

public class BarcodeActivity extends AppCompatActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_barcode);

// バーコード画像読込
InputStream stream = getResources().openRawResource(R.raw.qrcode);
Bitmap bitmap = BitmapFactory.decodeStream(stream);

ImageView ivBarcode = (ImageView)findViewById(R.id.iv_barcode);
ivBarcode.setImageBitmap(bitmap);

BarcodeDetector detector = new BarcodeDetector.Builder(getApplicationContext())
.setBarcodeFormats(Barcode.DATA_MATRIX | Barcode.QR_CODE)
.build();

Frame frame = new Frame.Builder().setBitmap(bitmap).build();
SparseArray<Barcode> barcodes = detector.detect(frame);

Barcode barcode = barcodes.valueAt(0);
String strBarcode = barcode.rawValue;

TextView tv = (TextView)findViewById(R.id.tv_barcode);
tv.setText(strBarcode);

}
}

顔検出では、「FaceDetector」を利用しましたが、バーコードの場合は「BarcodeDetector」を利用します。


あとは、検出したバーコードの結果を取得して、画面に表示しているだけです。
(QRコードは生成サービスを利用しました)


以上、簡単に読み取れました。
(次はカメラを通しての読み取りを試したいな)

0 件のコメント:

コメントを投稿