2012年12月13日木曜日

はじめてのZxing

ぱっとみAndroidでZXing2.1のエントリなかったのでメモ。

1.ダウンロード
そして適当に解凍。

2.プロジェクト直下にlibsディレクトリ作ってjarをコピー
ZXing-2.1/zxing-2.1/javase/javase.jar
ZXing-2.1/zxing-2.1/core/core.jar

3.CameraのonAutoFocusでQRコードを読み込ませる

mCamera.autoFocus(new AutoFocusCallback() {
    @Override
    public void onAutoFocus(boolean success, Camera camera) {
        if (success) {
            mCamera.setOneShotPreviewCallback(new PreviewCallback() {
                @Override
                public void onPreviewFrame(byte[] data, Camera camera) {
                    Size previewSize = mCamera.getParameters().getPreviewSize();
                    PlanarYUVLuminanceSource source = new PlanarYUVLuminanceSource(data
                            , previewSize.width
                            , previewSize.height
                            , 0
                            , 0
                            , previewSize.width
                            , previewSize.height
                            , false);
                    BinaryBitmap bitmap = new BinaryBitmap(new HybridBinarizer(source));
                    MultiFormatReader reader = new MultiFormatReader();
                    Result result;
                    try {
                        result = reader.decode(bitmap);
                        Toast.makeText(getContext(), result.getText(), Toast.LENGTH_LONG).show();
                    } catch (NotFoundException e) {
                        e.printStackTrace();
                        Toast.makeText(getContext(), e.getMessage(), Toast.LENGTH_LONG).show();
                    }
                }
            });
        }
    }
});


前のバージョンだとPlanarYUVLuminanceSource はライブラリに含まれてなかったみたい。
自動でAutoFocus回すのはまた今度。

参考:http://teru2-bo2.blogspot.jp/2012/06/androidqrzxing.html
Javadoc:http://zxing.org/w/docs/javadoc/index.html

0 件のコメント:

コメントを投稿