Pregătești
Você escolhe o conteúdo do código ou o ficheiro que quer transmitir.
Ferramentas no navegador Instrument public
MEGA QR inclui um gerador de códigos e uma ferramenta de transferência óptica. Você cria um código para link, Wi-Fi ou contacto; para a transferência, um ecrã apresenta uma sequência de códigos que a câmara do outro dispositivo reconstrói num ficheiro.

MEGA QR
Você escolhe o conteúdo do código ou o ficheiro que quer transmitir.
O gerador produz a imagem QR. A transferência óptica apresenta frames sucessivas.
A câmara lê o código ou reúne frames até poder reconstruir o ficheiro.
Link, Wi-Fi, contacto e outros tipos de conteúdo; exportação PNG ou SVG.
Dados transmitidos entre ecrã e câmara, sem uma ligação de rede entre dispositivos.
A geração e a reconstrução são feitas no navegador, sem uma conta de utilizador.
A transferência óptica depende da câmara, da luz, da distância e do ecrã. O dispositivo que transmite não recebe a confirmação da receção. Um código exibido publicamente pode ser lido por quem o vê.
MEGA QR em detalhe
MEGA QR são duas ferramentas no mesmo domínio, e a segunda não se parece nada com a primeira. O gerador cria códigos QR para oito tipos de conteúdo: link, texto, WiFi, cartão de visita, WhatsApp, email, SMS, telefone e coordenadas. A transferência ótica move um ficheiro inteiro de um ecrã para uma câmara, sem cabo, sem Bluetooth, sem rede entre os dois dispositivos.
Ambas funcionam integralmente no navegador. As páginas não fazem qualquer pedido a terceiros, e os dois binários WebAssembly de que depende a transferência são servidos de public/wasm/, não de um CDN — caso contrário, a promessa de que nada sai do dispositivo seria falsa. Uma palavra-passe de WiFi escrita no gerador nunca chega a um servidor.
A ideia que vale a pena entender sobre a transferência: um ecrã emite luz, uma câmara lê-a, e o recetor não tem como pedir nada de volta. Não existe canal de retorno. Desse facto decorre todo o resto — os frames descrevem-se a si próprios, a sua ordem não importa, qualquer subconjunto suficientemente grande reconstrói o ficheiro, e o emissor nunca pode saber se chegou alguma coisa.
Link, texto, WiFi, vCard, WhatsApp, email, SMS, telefone e geolocalização. Quando coloca um logótipo, o nível de correção de erros passa forçadamente para H, o mais alto — um logótipo faz um buraco na zona de dados e o código não sobrevive de outra forma. O logótipo está limitado a 35% da superfície, com aviso a partir de 30%. A exportação é renderizada separadamente da pré-visualização, para que um PNG de 4096 px não perturbe o que está no ecrã.
A biblioteca de geração, qr-code-styling 1.9.2, converte o texto com charCodeAt(i) & 0xFF e corta em silêncio cada diacrítico romeno e todo o cirílico: „Ștefan Țurcanu” era lido de volta como „tefan urcanu”. Nós codificamos em UTF-8 antes de ela o ver, para que o seu truncamento já não tenha o que cortar. Os payloads WiFi e vCard também são escapados — um „;” numa palavra-passe ou uma vírgula num nome de empresa corrompiam de outra forma o código, sem qualquer sinal.
O ficheiro é embalado num envelope (nome, tipo MIME, tamanho, SHA-256), comprimido com gzip se ficar menor, e depois passado por RaptorQ (RFC 6330). Cada frame traz um cabeçalho fixo de 20 octetos e um ou mais pacotes. Não importa quais frames capta, importa quantos: qualquer subconjunto suficientemente grande reconstrói o ficheiro. Medido em pixels renderizados reais, a sobrecarga do RaptorQ é 1,000x — os códigos LT usados pelos projetos de referência exigem 1,15x.
O segundo modo de envio é uma volta fixa que se repete infinitamente, sem sessão e sem alguém a carregar em start. O comprimento da volta viaja em cada frame, por isso um transeunte que aponta a câmara sabe, pelo primeiro código captado, quanto tempo tudo demora, em vez de ver um indicador. A configuração de referência é 36 frames a 12 por segundo — uma volta de três segundos que leva 25 KB de um único código preto e branco simples. Um menu inteiro, ou o horário completo de uma estação.
O número de códigos no ecrã, a cor e a versão QR são três limitações diferentes e ajustam-se separadamente. A escala de densidade tem 29 níveis, de v10 numa única banda (7 KB/s a 30 frames por segundo) até v39 em quatro bandas em cor (959 KB/s). Existe também uma escala completa sem cor, até 320 KB/s, porque uma câmara cuja crominância morre não deve ficar presa a uma única banda.
Dados e funcionamento
Da exploração à implementação
Um código QR leva a conteúdo curto e, se for uma ligação, a uma página que você pode alterar mais tarde — o código impresso não muda sozinho de destino. A transferência ótica move um ficheiro entre dois dispositivos que não têm permissão ou não conseguem comunicar pela rede. São tarefas diferentes e a confusão entre elas é a mais frequente.
Para impressão: contraste, dimensão final, área livre em redor, testado no tamanho em que vai ser colado. Para transferência: quão grande cai um módulo no sensor da câmara. Sob um modelo duro de lente (grelha de crominância deslocada em um pixel mais uma desfocagem 3x3), a cor devolve todos os três códigos a 4 pixels de dispositivo por módulo e absolutamente nada a 2. Esse é o limite real, e por isso a cor é a escolha do homem, não do controlador.
A nossa suíte passa por uma cadeia de câmara autêntica — os frames são escritos como YUV 4:2:0 e dados ao Chrome como webcam falsa, por isso a subamostragem de crominância é real. O que não tem: objetiva, reflexos, movimento, obturador rolante. Dez minutos com um telemóvel verdadeiro dão a primeira cifra honesta e são o próximo passo na nossa lista de trabalho, não um detalhe.
Numa cadeia de câmara simulada, a 10 frames por segundo, com os códigos a preencher a maior parte da imagem a 3-5 pixels de câmara por módulo, as quatro configurações saíram com hash verificado: preto e branco numa banda 15,8 KB/s, preto e branco em quatro bandas 37,7 KB/s, cor numa banda 40,1 KB/s, cor em quatro bandas 115,7 KB/s. A cor numa só banda bate o preto e branco em quatro. A taxa de falha foi zero em todo o lado. Repare de onde vêm os números: frames geométricos perfeitos, sem objetiva e sem movimento. Um telemóvel verdadeiro ainda não foi colocado à frente deles.
A câmara é pedida a 1920x1080 a 30 frames por segundo, com preferência pela traseira; se o Android recusar a restrição, caímos em qualquer câmara. Cada frame capturado é reduzido a 1280 px no lado longo antes da decodificação. O que conta verdadeiramente não é a resolução, mas quantos pixels do sensor caem num módulo: o preto e branco precisa de aproximadamente três, a cor de aproximadamente o dobro, porque a cadeia de vídeo do telemóvel normalmente entrega 4:2:0 e reduz pela metade ambos os planos de cor em ambas as direções. O detalhe fino de cor é a primeira coisa que uma câmara real destrói.
Porque a única coisa que o dispositivo que envia consegue medir é quantos símbolos produziram os seus próprios codificadores face a quantos lhe foram pedidos — uma afirmação sobre um processador, não sobre uma câmara a dois palmos. Um portátil nunca falha um degrau, por isso um controlador que lê “zero falhas” como “continua” sobe até ao topo e põe no ecrã quatro códigos que mudam trinta vezes por segundo, que nada consegue escanear. Isso foi mesmo entregue uma vez e uma pessoa encontrou-o num minuto. Agora o modo automático está limitado a uma banda, preto e branco, versão 26 e 15 frames por segundo. 15 não é um número redondo: uma câmara de telemóvel grava a 30 e não está sincronizada com o ecrã, por isso um frame tem de ficar exibido duas exposições consecutivas — 67 ms — para ser apanhado por inteiro.
Nada de especial, e é esse o ponto. Não existem números de ordem para recuperar. O codificador produz pacotes de reparação na proporção de 2x face aos símbolos de origem — medido neste código: a 60% de perda de frames, um conjunto de cerca de 2x K recupera 2 MB sem que a lista seja reproduzida uma segunda vez. O teto absoluto é 60.000 pacotes; acima disso, o remetente simplesmente retoma a lista com mais frequência, o que custa tempo, não memória. Se, ainda assim, algo correr mal, o hash SHA-256 deteta isso e a transferência falha de forma declarada em vez de entregar um ficheiro corrompido.
Não, e não é uma falha. Não existe canal de retorno — um ecrã emite luz, e a luz não volta com confirmações. A conclusão vê-se no dispositivo que recebe. Qualquer interface que afirmasse o contrário estaria a mentir, e já tivemos uma vez um teste que oferecia exatamente essa prova que o produto nunca tem: a simulação calculava a sua taxa de falha a partir do que a câmara simulada conseguia resolver. Esse é um canal de retorno. Quando um teste e o código entregue não concordam sobre o que pode ser sabido, o teste é que mente.
32 MB, rejeitado na seleção se for maior. O limite não vem do protocolo, mas da memória de um separador do navegador: o RaptorQ materializa todos os pacotes de uma vez, e um ficheiro de 50 MB com rácio 2x implicaria 150 MB de matrizes vivas, suficiente para matar o separador de um telefone. A codificação corre de forma síncrona no thread principal, medida em 2,5 segundos para 32 MB no computador. O que viaja efetivamente não é o tamanho do ficheiro: o envelope é comprimido com gzip antes do RaptorQ, por isso uma tabela de 1 MB é apenas alguns kilobytes de pacotes, e uma fotografia de 1 MB é um megabyte de pacotes.
Nem uma coisa nem a outra. Não existe conta e não existe assinatura. Depois da primeira visita, as páginas funcionam sem rede, porque tudo — incluindo os dois binários WebAssembly — é servido do próprio domínio. Vale também dizer o que aprendemos pelo caminho: um service worker registado não significa suporte offline. No primeiro carregamento, a página e os respetivos recursos são trazidos antes de o worker assumir o controlo, por isso o seu handler nunca os vê. A página reporta os seus próprios recursos através da Performance API em vez de assumir.
Exemplo ilustrativo
Um cenário de utilização, sem dados de cliente nem resultados comerciais atribuídos.
Um ecrã numa estação ou numa montra tem de dar aos transeuntes um ficheiro — o horário completo, o menu, um formulário — sem WiFi público, sem conta e sem que alguém carregue em algo.
O ecrã executa um carrossel: 36 fotogramas a 12 por segundo, uma volta de três segundos que se repete indefinidamente. A densidade é fixa durante o carrossel, porque uma volta é uma promessa só se o seu comprimento se mantiver. O comprimento da volta viaja em cada fotograma, por isso um telemóvel que apanha o primeiro código sabe de imediato quanto tempo tudo dura.
O transeunte filma três segundos e recebe 25 KB reconstruídos no seu navegador, verificados com SHA-256, a partir de um único código simples a preto e branco. O ecrã não sabe que foi lido e não tem como saber.
Ce este necesar:Un ecran care poate ține un cadru afișat 83 ms fără sfâșiere, lumină în care codul nu e spălat de reflexii, și o cameră care rezolvă aproximativ trei pixeli de senzor per modul. Cifra de 25 KB e derivată din aceleași funcții pe care le folosește expeditorul, nu tastată de mână alături de ele.
Possibilidades de colaboração
Códigos para acesso a informação pública, instruções ou contactos; transferência ótica de ficheiros entre dispositivos compatíveis, com avaliação das políticas de segurança da instituição.
Definimos um piloto em torno de um processo real: utilizadores, dados, integrações, custos e critérios de aceitação. A expansão segue após a avaliação do resultado.
Estabelecemos os requisitos de acessibilidade, alojamento, proteção de dados e interoperabilidade. Qualquer ligação a serviços AGE ou STISC requer a validação da elegibilidade, do acesso e das aprovações.
Estes são cenários de adaptação, não declarações sobre contratos ou parcerias existentes. As funções propostas confirmam-se no âmbito de trabalho do projeto.
Fale sobre um pilotoonGDPR.md verifica a superfície pública de um site: cookies, rastreadores, formulários e documentos informativos.
Plataforma públicaO Megaforms explora a recolha de respostas por formulários conversacionais, incluindo respostas por voz e transcrição.
Desenvolvimento e demonstraçõesEstamos a construir uma plataforma para ementas digitais e operações acessíveis por QR.
Desenvolvimento e demonstraçõesConte-nos o seu processo. Em conjunto decidimos o que vale a pena construir, o que podemos ligar e como verificamos o resultado.