2011-12-14 24 views
5

Google Zxingは画像を期待しています。誰かがライブスキャンで正常に動作するようにする方法を教えてもらえますか(つまり、ユーザーがQRコードでデバイスをポイントし、スキャンが行われる;ユーザーは画像を撮る必要はありません)。私は、次の二つの側面に遭遇しました:いくつかのスレッドが連続して写真を撮るために、タイマーやイベントインジェクションを使用することが提案Blackberry OS 5でライブモードでQRコードをスキャンする方法

  1. - しかし、このアプローチは、デバイス上で
  2. いくつかの他のスレッドが示唆されている、あまりにも多くのオーバーヘッドが発生する場合がありライブスキャンはOS 6以降でのみ可能です.RIMはこれらのAPIをOSバージョンの6より下に公開しないためですが、このような公式の声明は見つかりません。

Zxing以外は、BB OS 5でも同じことを達成するための他のライブラリですか?

ありがとうございます。

+0

zxingはイメージそのものを期待するものではなく、スキャン用のコアライブラリです。ビデオフィードを提供するかどうかは、アプリケーション/プラットフォームによって異なります。以前のバージョンのBBOSにはプレビューフィードを取得する方法がありませんでした。 –

+0

@SeanOwen - 技術的には、afaik、zxingはビットマップを期待しています(LuminanceSourceクラスをチェックすることができます)!だから、ビデオからフレームをつかんで処理することができます!残念ながら、それは可能なOS 5以下ではありません! –

+0

同意します。 (私は著者です)あなたの投稿は、図書館がソースが画像ファイルであることを要求するようでした。それは気にしない。ビデオフィードのフレームがある場合、LuminanceSourceを介して動作させることができます。 –

答えて

4

This library allows you to do live scanning on OS5これは、ZXingライブラリへのインターフェイスとして機能します。

OS5デバイスでFocusControlが完全に実装されていないため、バーコードを近づけると問題がありますので、注意してください。回避策は、カメラを強制的にフォーカスさせる唯一の方法であるVideoControl.getSnapshot()を使用することです。

+1

図書館は完璧な@donturnerで働いています!ありがとう!しかし、このライブラリでは、リストされている1番目のアプローチの修正版を使用していることを指摘しておきます。定期的にスクリーンショットをキャプチャし、QRコード用に処理します。素晴らしいアプローチのようには聞こえませんが、OS 5以下では他のオプションはありません:( –

1

「ライブスキャン」機能を使用するには、OS 6.0でのみ利用可能なZXingの上にあるレイヤであるバーコードAPIを使用する必要があります。

HereあなたはバーコードAPIに関する公式を持っています。 5.0では、VideoControlに基づいてカスタムメカニズムを実装する必要があります。回避策を実装するには、定期的にスナップショットを作成して解読したり、ビデオフィードから何らかの形でフレームをキャプチャしたりすることができます。
もう1つの答えは、オートフォーカスのないデバイスでは、FocusControlは機能しません。この場合は、代わりにズームを適用することをお勧めします(ZoomControlクラスを使用)。これにより、ユーザはブラックベリーをQRコードから離して画面上で見ることができるようになり、キャプチャされたイメージの定義が増え、バーコードを検出する機会が増えます。

+0

厳密にはそうではありませんが、入力ビデオフィードを定期的に復号しようとすると「ライブスキャン」できます。これはOS5ではフォーカスを制御できないため、コードがカメラの近くにあると、あいまいな画像をデコードすることになります。 – donturner

+0

そして、明確にするために、多くのOS5デバイスは**オートフォーカス機能を備えていますそれらのカメラのハードウェアはOS5 APIにはアクセスできません。 – donturner

+0

@donturnerあなたはスナップショットについて正しくあります。フォーカスについては、FocusControl 5.0をFocusControl.AUTOに設定しました。あなたのデバイスはオートフォーカスが可能です。決して任意のフォーカスレベルで試したことはありません。短距離でのぼやけを回避するには、 'ZoomControl'を使ってズームを最大レベルに設定することができます。実際、Barcode APIのライブスキャン画面ではそういったことがあります。 –

関連する問題