ZXing QR Reader Library для Android чтение мучительно медленно - PullRequest
0 голосов
/ 24 ноября 2018

Я пытаюсь прочитать штрих-код с помощью библиотеки 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 this is the QR

Ответы [ 2 ]

0 голосов
/ 03 января 2019

Я получаю быстрый опыт, устанавливая следующие вещи.Мне нужно сканирование 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. Я использую эту библиотеку.

0 голосов
/ 24 ноября 2018

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...