AndroidのCameraでQRコードを読み取ってURLをロード、もしくは自分のURLをQRコード化して他の端末に手軽に表示なんてことをしてみたいと思ったことがありませんか?
今回そのようなことを試してみたのですが、ZXingライブラリを使って、サクっとできてしまったので紹介します。
まず使用したQRCodeライブラリはZXing ("Zebra Crossing")。QRCodeだけでなく、バーコードの読み書きにも対応しています。ライセンスはApache License 2.0ですので、自作アプリに流用可能です。
はじめに、ZXingのサイトから下記のファイルをダウンロードします。
- Downloads => ZXing-2.0.zip => (展開) => core/core.jar
- PlanarYUVLuminanceSource.java
つぎに、プロジェクトに取り込む方法は下記の通り:
- "project" => properties => Java Build Path => Librariesタブ => Add JARs... => core.jarを選択
- new packageでcom.google.zxing.client.androidを作成し、ダウンロードしたPlanarYUVLuminanceSource.javaをコピーして配置します。
- 読み込みAPI
- 書き出しAPI
- yubDataにはCameraからのpreviewCallbackで得られるyuvデータをそのまま指定します。dataWidthやdataHeightにはCameraパラメタから得られるプレビュー画サイズを指定します。leftおよびtopはゼロ、widthおよびheightはプレビュー画のサイズを入れておけばいいでしょう。
- textにはエンコードしたい文字列、sizeは生成するQRCodeの一辺の長さを指定します。うまくエンコードできればBitmapクラスのインスタンスが返されます。
このクラスはGoogle Playで公開しているアプリPhotoFtpの中に組み込んで利用しています。
なお、このクラスを作るに当たって、下記のサイトを参照させて頂きましたm(__)m
より深く言及されているので、詳しく知りたい方はぜひご参照ください。
0 件のコメント:
コメントを投稿