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();
}
}
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 Я использую эту библиотеку.