Pular para o conteúdo principal
PhotoEditor

( Arquitetura explicada )

Como sua foto é processada localmente

Este mapa separa o caminho dos pixels dentro do navegador das conexões técnicas, de medição ou publicidade que a página pode fazer.

Caminho da imagem

As setas abaixo representam a sequência funcional observada no editor. Cada cartão descreve uma responsabilidade diferente.

  1. 1. Você escolhe a imagem

    O navegador recebe o arquivo pelo seletor ou arraste. A página valida o tipo e tenta decodificar os pixels.

  2. 2. O navegador mantém o trabalho

    Arquivos e ajustes do estúdio podem ficar no IndexedDB; preferências e dados temporários do fluxo usam armazenamento do navegador.

  3. 3. Workers processam os pixels

    Ajustes, miniaturas e exportações são calculados localmente. O canvas apresenta a prévia; ela não é a prova da resolução final.

  4. 4. O lote vira arquivo

    Resultados individuais são reunidos por uma biblioteca ZIP empacotada no próprio projeto, sem buscar código de ZIP em CDN durante a exportação.

  5. 5. O navegador inicia o download

    Um endereço temporário de memória é criado para a imagem ou ZIP. A nova cópia é salva pelo mecanismo de download do navegador.

Conexões externas da página

Processamento local não significa que a página inteira funciona sem rede. Esta distinção evita uma promessa de privacidade absoluta.

Armazenamento e exclusão

IndexedDB permite que o estúdio recupere arquivos e ajustes entre rotas operacionais. localStorage guarda preferências como consentimento e tema; sessionStorage transporta dados temporários da exportação. O navegador e suas políticas de armazenamento determinam quando esses dados podem ser removidos.

A descrição jurídica completa, categorias e escolhas disponíveis permanecem nas páginas de Privacidade e Cookies.

Detalhes de arquitetura: Workers, Canvas e TypedArrays

O PhotoEditor.sbs separa a renderização da interface da manipulação dos pixels utilizando Web Workers dedicados. Quando uma imagem é aberta, a thread principal do navegador decodifica o arquivo em um ImageBitmap, extrai seu ImageData e transmite o buffer binário (ArrayBuffer) para o worker em segundo plano. Essa separação garante que os controles deslizantes de exposição, contraste, temperatura e curvas permaneçam fluidos mesmo ao calcular transformações sobre milhões de pixels.

As transformações de cor operam diretamente sobre matrizes tipadas com limitação de 8 bits (Uint8ClampedArray). Por exemplo, tabelas de busca de curvas de tom e misturadores de canal percorrem a memória contígua com contenção nativa de inteiros, o que evita artefatos de transbordamento de pixel sem o custo computacional de conversões em ponto flutuante. As prévias são desenhadas em superfícies HTML5 Canvas de alta resolução, ajustando-se à proporção da tela enquanto a resolução original é mantida intacta para a exportação final.

A liberação de memória é gerenciada com rigor durante sessões de edição prolongadas. Ao alternar imagens ou concluir a exportação de um lote, os endereços temporários de memória são descartados via URL.revokeObjectURL(), e os buffers desatualizados são liberados para coleta de lixo pelo navegador. Esse ciclo de vida local evita o esgotamento de memória e fechamentos involuntários da aba.

Perguntas sobre o processamento local

“No navegador” quer dizer sem internet?
Não. A página precisa ser carregada pela rede como qualquer site, e pode buscar fontes, medição e, com seu consentimento, publicidade. O que fica no aparelho são os pixels da sua imagem.
Minha foto é apagada quando fecho a aba?
O editor guarda as imagens da sessão no armazenamento do navegador para que você não perca o trabalho ao recarregar. Esse armazenamento é local e descrito na página de Cookies; carregar um novo conjunto limpa o anterior.
Por que lotes grandes travam?
Porque o navegador precisa manter os pixels decodificados na memória, e uma foto de 12 megapixels ocupa muito mais do que o arquivo em disco sugere. O limite é do aparelho, não uma cota do site.
Como posso comprovar que as fotos não são enviadas?
Abra as Ferramentas de Desenvolvedor do navegador (F12 ou Inspecionar), acesse a aba Rede (Network), filtre por Fetch/XHR e execute edições ou exporte uma foto. Você verá que nenhuma requisição HTTP POST ou PUT transmitindo os bytes da sua imagem é enviada para qualquer servidor.
Quais conexões externas a página realiza?
Entrega de arquivos estáticos via Vercel CDN, telemetria de desempenho (Speed Insights e Analytics) caso autorizada nas preferências de privacidade, e scripts do Google AdSense caso haja consentimento. Nenhum pixel ou metadado da foto é incluído nessas conexões.
Como posso remover dados EXIF e localização GPS antes de compartilhar?
O editor descarta cabeçalhos EXIF e coordenadas GPS por padrão na rasterização em canvas. Para uma limpeza dedicada de metadados, utilize nossa ferramenta de Remover metadados de foto.