Instascan: Esta lib apenas decodifica códigos QR?

Criado em 14 jul. 2017  ·  8Comentários  ·  Fonte: schmich/instascan

A digitalização do código QR funciona bem. Eu queria saber se esta biblioteca suporta a decodificação de outros formatos de código de barras. Estou particularmente interessado em decodificar códigos Data Matrix.

Existe alguma maneira de modificar o código principal para decodificar datamatrix?

Comentários muito úteis

O mesmo aqui, com ZXing._decode_any os códigos QR ainda funcionam, mas os códigos de barras geram um erro Runtime.functionPointers[index] is not a function

Todos 8 comentários

Desculpe a demora em responder. No momento, a biblioteca não suporta oficialmente nada além de códigos QR, embora o suporte a vários formatos e vários códigos no mesmo quadro seja um objetivo de longo prazo.

O núcleo da biblioteca é um pouco Frankenstein. Ele é alimentado pela compilação Emscripten JavaScript da porta C++ da biblioteca ZXing Java .

Se você observar o exemplo do Emscripten , verá que eles fazem chamadas para ZXing._decode_qr (que esta biblioteca usa), bem como ZXing._decode_any . Como o ZXing suporta Data Matrix , acredito que ZXing._decode_any reconhecerá códigos QR, códigos de barras, Data Matrix, Aztec, etc.

A chamada relevante está em scanner.js . Infelizmente, não tenho tempo para testá-lo, mas a mudança é pequena se você quiser tentar.

Tudo bem. Vou experimentar e te aviso.

Nota relacionada ao lado: você tem alguma ideia de por que o site de demonstração parou de funcionar? Estou recebendo o erro Error: Cannot access video stream (DevicesNotFoundError). em todos os navegadores

screen shot 2017-07-18 at 14 27 16

Talvez você tenha o acesso à câmera bloqueado por padrão ou bloqueou o acesso ao site de demonstração em algum momento no passado?

Você deve ver este prompt ao visitar o site de demonstração pela primeira vez:

screen shot 2017-07-18 at 7 02 49 am

O acesso à câmera deve ser permitido:

screen shot 2017-07-18 at 7 04 24 am

Fechando o problema, pois todos os formatos são suportados ao substituir ZXing._decode_qr por ZXing._decode_any na linha https://github.com/schmich/instascan/blob/master/src/scanner.js#L145

Obrigado pela ajuda.

Obrigado por testar isso e relatar de volta. Estou hesitante em oferecer suporte oficial a outros formatos agora, já que não testei todos eles, mas, novamente, definitivamente quero apoiá-los no futuro. Por enquanto, criei o nº 61 para acompanhar isso. Obrigado novamente.

Também é possível que quando eu uso instascan.min.js minificado para digitalizar códigos de barras?
Tentei mudar u._decode_qr(this.decodeCallback) para u._decode_any(this.decodeCallback)
O QR agora ainda funciona, mas o código de barras não.

O mesmo aqui, com ZXing._decode_any os códigos QR ainda funcionam, mas os códigos de barras geram um erro Runtime.functionPointers[index] is not a function

Eu também estou enfrentando os mesmos problemas com @eggyyy

Esta página foi útil?
0 / 5 - 0 avaliações