2

Android プロジェクトで zxing を使用したいと考えています。コードをダウンロードし、サンプル アプリを実行しています (ZXingTestActivity)。参考までに、私はネイティブ android のコーディングにあまり詳しくありません。

zxing を使用して qr コードをスキャンし、アプリケーションを構成したいと考えています。通常の qrcode と構成 qrcode の混同を避けるために、反転/負の qrcode を画面または紙に印刷したいと考えています。

これらの反転/ネガティブ qrcode をスキャンできるようにするには、カメラをネガティブ モードにする必要があります。これどうやってするの?どこから始めればよいかわかりませんが....

ZXingTestActivity.java には、いくつかの追加パラメータを IntentIntegrator に指定する clicklistener があります。次に例を示します。

private final Button.OnClickListener scanProduct = new Button.OnClickListener() {
    @Override
    public void onClick(View v) {
      IntentIntegrator integrator = new IntentIntegrator(ZXingTestActivity.this);
      integrator.addExtra("SCAN_WIDTH", 800);
      integrator.addExtra("SCAN_HEIGHT", 200);
      integrator.addExtra("RESULT_DISPLAY_DURATION_MS", 3000L);
      integrator.addExtra("PROMPT_MESSAGE", "Custom prompt to scan a product");
      integrator.initiateScan(IntentIntegrator.PRODUCT_CODE_TYPES);
    }
  };

addExtra を使用してカメラ設定を追加することはできますか? また、これをフォーマットするにはどうすればよいですか? 出来ますか?または、カメラを反転/ネガティブ モードに設定する別の方法はありますか?

4

3 に答える 3

4

ZXingでは完全に不可能かどうかはわかりませんが、ZBarでは可能です。

  1. まず、sourceforgeでZBar androidバージョンをダウンロードします: http ://sourceforge.net/projects/zbar/files/AndroidSDK/

  2. プロジェクトをEclipseに追加します

  3. CameraPreview.javaを開きます

  4. クラスにプライベート変数を追加します。

    プライベートCamera.ParametersmCameraParams;

  5. 行の後に次の行を追加します。mCamera = camera;コンストラクターCameraPreviewで:

    mCameraParams = camera.getParameters(); mCameraParams.setColorEffect(Camera.Parameters.EFFECT_NEGATIVE); mCamera.setParameters(mCameraParams);

  6. それでおしまい!(プロジェクトを実行します)

また、ZBarは破損したバーコードをより速く検出できると考えてください。私が別のプロジェクトで使用したPCバージョンと同じで、非常にうまく機能します。あなたの目で点滅し、コードがそこにあります。派手なものはまったくありません、ただ良いです!

于 2013-01-24T23:45:19.147 に答える
2

@Erwinus、これがコードです。以前のコメントですでに完全に与えられたものである理由が明らかになったことを願っています。宿題が増え、告発が減れば、SO は幸せな場所になります。

mCameraParams = camera.getParameters();
if (mCameraParams.getSupportedColorEffects().contains(Camera.Parameters.EFFECT_NEGATIVE) {
  mCameraParams.setColorEffect(Camera.Parameters.EFFECT_NEGATIVE);
}
mCamera.setParameters(mCameraParams);
于 2013-01-27T21:32:26.500 に答える
1

申し訳ありませんが、 経由でこれを行う方法はありませんIntent。これをオプションとして追加するクリーンなパッチは、コミットするのに魅力的です。唯一の問題は、カメラが「ネガ」モードをサポートする必要があることです。それなら簡単です (この動作はBarcode Scanner+の選択可能なオプションとして見ることができます)。それ以外の場合は、自分で画像を反転する必要があります。難しいことではありませんが、少しのコードと CPU サイクルが必要です。

于 2013-01-24T20:31:10.770 に答える