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?
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
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:
O acesso à câmera deve ser permitido:
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
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 erroRuntime.functionPointers[index] is not a function