Barcode Detection API
Detectar códigos de barras lineares e bidimensionais em imagens nunca foi tão simples.
Esta é uma especificação escrita por um grupo da comunidade W3C, nomeado como Accelerated Shape Detection in Images (shape detection api).
Introdução
Fotos e imagens constituem a maior parte da Web e muitas incluem informações detectáveis por métodos computacionais, que por sua vez são um tanto caros de processar, no entanto levaria a casos de uso interessantes como marcação de pessoas ou objetos em fotos e encaminhamento para páginas com facilidade. Você pode estar pensando "mas clicar em um link não é mais simples que ler um QRCode?" e a resposta é sim!
Porém, existem outros casos de uso onde estamos no mundo real e desejamos acessar um recurso do mundo virtual, um exemplo bem útil e comum de encontrar é quando chegamos a um restaurante e o acesso ao cardápio é feito através de um QRCode impresso, sem isso precisamos descobrir a URL e digita-la letra por letra. Pode não parecer, mas em algumas ocasiões isso pode ser frustrante ou desafiador, caso o domínio não seja amigável ou até mesmo em casos de acessibilidade para um surdo-mudo ou alguém com dificuldades especiais.
Compatibilidade
Conceitos e uso
Alguns casos de uso por meio de formatos de código de barras suportados. Os códigos QR podem ser usados para pagamentos on-line, navegação na web ou estabelecimento de conexões de mídia social, os códigos Aztec podem ser usados para escanear cartões de embarque e os aplicativos de compras podem usar códigos de barras EAN para comparar preços de itens físicos.
Exemplos de tipos de código
Conceitos técnicos
Entrando nos conceitos técnicos, a detecção é obtida por meio do método detect()
, que recebe um objeto, podendo ser um dos a seguir, HTMLImageElement
, SVGImageElement
, HTMLVideoElement
, HTMLCanvasElement
, ImageBitmap
, OffscreenCanvas
, VideoFrame
, Blob
, ou ImageData
. Além de parâmetros opcionais que podem fornecer dicas sobre quais formatos de código detectar.
Implementação
Bem, agora podemos começar a explorar as APIs disponíveis no objeto window
Verifique se está utilizando algum dos navegadores que tenham suporte, conforme a tabela acima e usando o console JavaScript, execute:
BarcodeDetector.getSupportedFormats().then(console.log)
O retorno é um array contendo os formatos de códigos que podem ser lidos.
Recursos
Faça o download do pacote de imagens em SVG que preparei para nossos testes.
Exemplo
Para testar essa API da Web apenas um arquivo HTML simples será suficiente, vamos lá.
Hoje paramos por aqui mas em breve escrevo uma implementação mais avançada usando esta API.
Valeu, abraço.
[]s
Last updated