★ The Tsuchinoko News 2 (つちのこ通信2) ★

重要な話から、どうでもいいことまで。ほとんど役に立たないことを書き連ねています。

【PC】その後の zxingのお勉強

f:id:tsuchinoko118:20120723181321j:image:left:w240Android アプリの開発のお勉強ということで、zxingを選んでバーコードスキャナに取り組んでいる最中なのだが、どうやっても 1次元バーコード(JAN13 = EAN13 ) が読めないので四苦八苦していたりした。
書籍やブログなどの大半が QRコードを読むというものだったり、Zxing や APILevelが低かったりで、Zxing2.0 + API Level 15 以上となるとほとんど情報がないこともあったりで、悩みまくってしまった。
Android OS 2.Xからは プレビューサイズにピクチャーサイズを指定しないといけないとか、カメラパラメーター(カメラの設定)の仕様がどうも変わっていたりと、このあたりは Windows での開発に比べて、なんともぎこちない。頼りは、淡々と書いてある Googleサイトのみ、と言ったところか。
ともかく悩みまくったおかげで、どういうわけか「カメラアプリは”鬼門”」というフレーズで呼ばれているカメラの制御はほとんど修得できたので感謝だ。
しかし、あいかわらず、QRよりはるかに単純そうな JANが読めない。
読めない、と泣きそうになっていたある日の夜、夢の中でお告げがあり、翌朝、カメラを横向けにしてみると、いともあっさり読めてしまった(x_x;;
なんと、QRは、縦横どの方向でも読み取れるが、1次元バーコードは横向きしかダメな模様。これは仕様だそうな。
慣れないうちから、縦向けのカメラにこだわったのが失敗。
そこで、撮影したデータを90度傾けるようにしてみたのだが、その処理の分、遅いので、使っていてイライラする。
f:id:tsuchinoko118:20120723181322j:image:right:w240縦向けは、とりあえずはあきらめて、横向けにすると、オートフォーカスの都合で、ぐぐっと寄ったり引いたりで、被写体=バーコードの大きさが変わるため、けっこうミスが多いので、これまたイライラする。
悩んだ末に、大きめのフレームを作って、内側にさらにフレームを表示して、このあたりにバーコードが入るようにしてね、とレーザー風のバーを点滅させるように仕様変更した。
カメラを取り出し、この内側フレームと点滅バーあたりにバーコードを配置し、フレーム内をタップすると解析するようにしてみた。
もちろん、せっかく修得したプレビューサイズやピクチャーサイズをいろいろ試して、ぎりぎりの画素数の少なさで、とにかく速度を優先した。

さらに、うまくいったかいってないか(OKかNGか)が直感的にわかるように「ぴぽぽ」と音を鳴らすようにもしてみた。

実験してみると、これは、かなり心地よい。

うまくいったついでに、ソケット通信を持ち出して、離れた事務室のパソコンに取得したコードを送ってみた。

f:id:tsuchinoko118:20120723181323j:image:left:w240
確認しに行くのに往復10分かかる場所だったので、試験が大変だったが、やりたいことは出来た。たいへん面白い。

もう少し時間があれば縦カメラ版もつくってみたいが、速度重視・確度重視でいくと、なかなか難しそう。

さてこれで、バーコードに関するアプリは本題の方を作れそうだ。

のべ1週間近く”ド素人”から悩んで得たモノは大きい。感謝だ。