ZXing QR Reader Library для Android чтение мучительно медленно

Я пытаюсь прочитать штрих-код с помощью библиотеки ZXing для Android. в моем приложении, когда я нажимаю кнопку, меня перенаправляют на считыватель штрих-кодов, где я читаю код с помощью считывателя ZXing. На этом этапе мое приложение может успешно считывать QR-коды, но проблема в том, что мне приходится каждый раз держать камеру под определенным расстоянием / углом (не фиксированным, кстати). Поэтому, естественно, я прохожу мини-тренировку (преувеличение), пока читаю QR-код. Кроме того, я попытался включить вспышку, но когда я делаю это, становится труднее читать. У меня есть библиотека для мобильных пользователей, которая работает очень быстро, но в данный момент не поддерживает вспышку (или, возможно, я не нашел, как включить вспышку).

Я предполагаю, что моя проблема как-то связана с разрешением. штрих-код печатается на машине, которая использует термопринтер с очень низким разрешением. Поскольку я не могу изменить разрешение принтера, есть ли способ снизить разрешение, при котором ZXing считывает штрих-код?

(PS Мне пришла в голову идея более низкого разрешения из-за того, что Mobile Vision позволила нам изменить разрешение, и у меня были проблемы с чтением с более высоким разрешением).

Я бы предпочел использовать Mobile Vision, если есть способ включить вспышку.

мой код для чтения штрих-кодов выглядит следующим образом

private ZXingScannerView mScannerView;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    mScannerView = new ZXingScannerView(this);
    mScannerView.setAutoFocus(true);
    //mScannerView.setFlash(true);
    setContentView(mScannerView);
}

@Override
protected void onResume() {
    super.onResume();
    mScannerView.setResultHandler(this);
    mScannerView.startCamera();
}

@Override
protected void onPause() {
    super.onPause();
    mScannerView.stopCamera();
}

@Override
public void handleResult(Result result) {

    if (result.getText() != null) {
        Intent qrCodeIntent = new Intent();
        qrCodeIntent.putExtra("barcode", result.getText());
        setResult(CommonStatusCodes.SUCCESS, qrCodeIntent);
        Log.v("Code", result.getText());
        Log.v("Code Format", result.getBarcodeFormat().toString());
        mScannerView.stopCamera();
        finish();
    }

}

Qr это QR

1 ответ

Решение

Если я правильно помню, по умолчанию ZXing использует фильтры всех форматов для проверки изображения. Я имею в виду, что сначала он сканирует, например, EAN13, чем UPC-A и так далее, пока не доберется до QR-парсера. Можно установить определенные декодеры для просмотра сканирования ZXing. Я уверен, что это ускорит процесс сканирования.

Я получаю быстрый опыт, устанавливая следующие вещи. Мне нужно сканирование QR-кода. Итак, я установил IntentIntegrator.QR_CODE.

IntentIntegrator integrator = new IntentIntegrator(activity);
                    integrator.setDesiredBarcodeFormats(IntentIntegrator.QR_CODE);
integrator.setPrompt("Scan");
integrator.setCameraId(0);
integrator.setBeepEnabled(true);
integrator.setBarcodeImageEnabled(false);
integrator.setOrientationLocked(true);
integrator.initiateScan();

Я также удаляю автофокус камеры из манифеста.

NB Я использую эту библиотеку.

Другие вопросы по тегам