ToolActToolAct

Divisor de imagem em grade

Divida uma imagem em grade 3×3 para partilha nas redes sociais

Carregar imagem

Arraste uma imagem aqui ou clique para selecionar um ficheiro

Suporta formatos JPG, PNG, WebP, BMP, GIF

O que é um divisor de imagem em grade?

O divisor de grade de imagem separa uma foto em partes iguais, geralmente um conjunto 3×3 com nove imagens para redes sociais. Quando as peças são publicadas na ordem correta em plataformas como Instagram, WeChat Moments ou Weibo, a visualização do perfil ou feed recompõe a imagem grande original. Ele é útil para campanhas visuais, teasers de produto, anúncios de eventos, portfólios e composições em que o conjunto importa mais que uma postagem isolada. Bons resultados dependem da proporção da imagem, das margens para rostos e textos e da ordem de envio, pois uma peça fora do lugar quebra o efeito.

Como usar

Como usar

  1. Envie ou arraste e solte uma imagem
  2. A ferramenta a divide automaticamente em 9 partes
  3. Clique em qualquer parte para baixá-la individualmente
  4. Clique em "Baixar tudo" para salvar todas as partes de uma vez

Notas sobre o recorte

  • Use uma imagem com a proporção final desejada; a divisão automática não recupera conteúdo já recortado ou preenchido incorretamente.
  • Visualize as nove partes antes de publicar, especialmente quando texto, rostos ou bordas de produto cruzam as linhas de divisão.

Casos de uso

Dividir uma imagem em grade 3 por 3Envie uma imagem e a página a recorta em nove fatias PNG iguais usando canvas, preservando a ordem de linhas e colunas como posições numeradas de 1 a 9. Dimensões de origem que não se dividem exatamente por 3 serão arredondadas para baixo em pixels inteiros, então uma entrada de 1081 por 1081 ainda produz nove PNGs de 360 por 360 com uma linha de pixels restantes descartada.
Preparar tiles de imagem para redes sociais ou quebra-cabeçasUse a pré-visualização original, dimensões e a grade numerada para confirmar o recorte antes de baixar as fatias individuais para posts, jogos, folhas de exercícios ou testes de layout. As fatias são salvas como PNG, então o tamanho do arquivo cresce rapidamente se a fonte for fotográfica; considere executar um compressor na grade primeiro quando o feed tiver um limite de 10 MB.
Baixar fatias uma a uma ou como sequênciaClique em uma célula da grade para baixar aquela fatia, ou baixe todas as fatias com pequenos atrasos para que o navegador possa lidar com cada arquivo gerado. Mantenha a imagem de origem até que as fatias numeradas tenham sido visualizadas na ordem em que você planeja enviá-las.
Adicionar margens seguras antes de fatiar para ordenar o uploadDeixe margens internas na imagem de origem para que rostos, títulos ou logotipos não fiquem exatamente na borda de uma fatia, pois um único rosto cortado quebrará a grade reconstruída no feed. Alguns pixels de margem também impedem que plataformas como Instagram cortem as bordas para sua proporção de miniatura.
Usar nomes de arquivo numerados para manter a ordem de upload corretaBaixe as fatias com seus nomes de 1 a 9 preservados e publique-as exatamente nessa ordem de linhas e colunas, pois inverter a sequência é a causa mais comum de uma grade final embaralhada. Ordenar a pasta baixada por nome de arquivo antes de selecioná-las no diálogo de upload evita o erro de baixo para cima que quebra o feed reconstruído.

Princípio técnico

O divisor de imagem em grade é construído sobre o HTML5 Canvas 2D API (WHATWG HTML Living Standard §4.12, originalmente especificado na Recomendação W3C HTML5 de 2014). O pipeline tem três camadas: decodificar os pixels de origem em um CanvasImageSource, copiar um sub-retângulo desses pixels para um canvas offscreen via a forma de 9 argumentos de drawImage e então codificar o canvas offscreen como PNG via canvas.toBlob(). Tudo acontece na aba do navegador — sem upload, sem servidor, sem renderização remota. A etapa de decodificação importa mais do que parece. Um File de <input type='file'> ou um DataItem de arrastar e soltar é lido por FileReader.readAsDataURL (ou, em código moderno, URL.createObjectURL) em uma Blob URL, que o navegador entrega ao carregador de Image. O elemento Image dispara 'load' assim que o bitmap é decodificado pelo codec de imagem da plataforma (libpng/libjpeg-turbo/libwebp no Chromium, o equivalente no WebKit/Gecko). Uma imagem sem CORS carregada dessa forma é tratada como 'contaminada' — getImageData lançaria um SecurityError — então o divisor usa apenas drawImage e nunca lê arrays de pixels, o que contorna completamente o problema de CORS. Para imagens muito grandes (>~8K no lado mais longo) o bitmap é mantido na memória da GPU em alguns motores, então canvas.toBlob pode passar por uma leitura GPU→CPU que custa ~30-100 ms em um celular. O recorte é uma única chamada drawImage por fatia: ctx.drawImage(img, sx, sy, sw, sh, dx, dy, dw, dh) — os três primeiros pares são o retângulo de origem (sx, sy, sw, sh) e os três últimos são o retângulo de destino no canvas de destino. Para uma divisão 3×3 de uma foto 1920×1080, o retângulo de origem de cada fatia é 640×360 começando em (col*640, row*360). O canvas de destino é dimensionado exatamente para a fatia (640×360) e então canvas.toBlob(blob => ..., 'image/png') executa o codificador PNG da plataforma. PNG é escolhido em vez de JPEG porque as fatias de grade são tipicamente recortes retangulares limpos com texto nítido e elementos de UI onde a codificação sem perdas importa; os blocos DCT 8×8 do JPEG borrariam as bordas. O download em lote usa URL.createObjectURL em cada Blob, um clique sintético de <a download> e revokeObjectURL após um pequeno atraso (geralmente 60-120 s, o tempo de vida da plataforma para uma Blob URL não utilizada). Para 9 fatias, isso dispara 9 eventos de download consecutivos; alguns navegadores limitam múltiplos downloads da mesma aba, então a página normalmente os espaça com um setTimeout de 50-200 ms entre cliques. Em termos de desempenho, o gargalo em um celular é geralmente o codificador PNG (libpng é single-threaded por codificação), não drawImage; para 9 fatias de 1080p, espere 200-500 ms no total em um Android intermediário e 100-200 ms em um Chromium desktop.

  • Pipeline: FileReader ou URL.createObjectURL → elemento Image → HTMLCanvasElement → recorte drawImage de 9 argumentos → canvas.toBlob('image/png') → URL.createObjectURL + <a download>.
  • drawImage(img, sx, sy, sw, sh, dx, dy, dw, dh) é a sobrecarga de 9 argumentos que recorta um retângulo de origem (sx,sy,sw,sh) em um retângulo de destino (dx,dy,dw,dh); essa é a única chamada de API que realiza a divisão.
  • Imagens de origem que não são servidas com cabeçalhos CORS contaminam o canvas — getImageData lançaria SecurityError, então o divisor nunca lê arrays de pixels, apenas faz blits e codifica.
  • canvas.toBlob é assíncrono e não bloqueante (o callback dispara em uma microtask posterior) versus o legado canvas.toDataURL que é síncrono e congela a thread principal para imagens grandes.
  • Para uma divisão 3×3 de uma imagem N×M, cada fatia é (N/3) × (M/3); tamanhos não divisíveis produzem um restante de 1 pixel na borda direita/inferior, tratado com Math.floor com uma fatia de restante explícita se necessário.
  • PNG é escolhido em vez de JPEG para fatias de grade porque cada fatia é um recorte retangular com bordas nítidas (texto, UI, diagramas) onde os blocos DCT 8×8 borrariam as linhas de limite.
  • Download em lote usa URL.createObjectURL por blob + clique de <a download>; navegadores limitam múltiplos downloads da mesma aba, então a página normalmente espaça os cliques em 50-200 ms e revoga as Blob URLs após o clique para liberar memória.
  • O gargalo de desempenho é o codificador PNG da plataforma (libpng é single-threaded por codificação), não drawImage; 9 fatias de 1080p levam ~200-500 ms em mobile intermediário e ~100-200 ms em Chromium desktop.

Exemplos

Divisão quadrada 1:1 (post do Instagram)

Entrada: 1080 x 1080 px
Saída:   9 fatias de 360 x 360 px (grade 3x3)
Uso:     prévias de carrossel do Instagram, posts em grade no Xiaohongshu

Divisão paisagem 16:9 (thumbnail do YouTube)

Entrada: 1920 x 1080 px
Saída:   9 fatias de 640 x 360 px (grade 3x3)
Uso:     teste A/B de thumbnails do YouTube, variantes de banner multiplataforma

Divisão retrato 9:16 (TikTok / Reels)

Entrada: 1080 x 1920 px
Saída:   9 fatias de 360 x 640 px (grade 3x3)
Uso:     exploração de capas de vídeos curtos, prévias estilo story

Perguntas frequentes

O que a ferramenta de grade de imagem faz?

Ela divide uma imagem em uma grade de células iguais (por exemplo, 3×3, 2×4) para você postar cada célula como um tile separado no estilo Instagram, ou montar como quebra-cabeça/cartaz. Cada célula é exportada como seu próprio arquivo PNG/JPEG.

A imagem é enviada para algum servidor?

Não. A grade é calculada inteiramente no seu navegador via canvas. Os bytes da imagem nunca saem do seu dispositivo.

Quais tamanhos de grade são suportados?

Os presets comuns são 3×3 (tile gigante do Instagram), 3×1 (tríptico de banner), 2×2, 4×4 e 9×16. Linhas e colunas personalizadas geralmente são permitidas. O máximo depende da memória do navegador — grades muito grandes em uma origem de alta resolução podem ultrapassar os limites de tamanho do canvas.

Como posto os tiles no Instagram na ordem certa?

A grade do Instagram é preenchida da direita para a esquerda, de cima para baixo (então seu primeiro post vai para o canto superior direito, e o último para o inferior esquerdo em uma 3×3). A página exporta os tiles numerados de 1 a 9 — envie-os na ordem 9, 8, 7, 6, 5, 4, 3, 2, 1 para casar com o layout visual. Algumas páginas trazem um guia de ordem.

Por que meus tiles exportados ficaram um pouco desalinhados?

A imagem de origem precisa ter dimensões divisíveis pelo tamanho da grade para um corte limpo. A página corta a borda direita/inferior ou redimensiona a imagem para encaixar; veja qual opção está marcada. Se você montar os tiles fisicamente, erros de alinhamento subpixel se acumulam pela grade.

Qual é o formato e a resolução de saída?

PNG por padrão na resolução da origem. Para Instagram, 1080×1080 pixels por tile é o mínimo recomendado (origem de 4320×4320 para uma grade 4×4). Para impressão de cartazes físicos, use uma resolução de origem maior e um formato adequado para impressão como TIFF se sua gráfica suportar.

Posso adicionar espaços entre os tiles?

Algumas builds oferecem uma opção de 'gutter' para deixar uma margem branca em volta de cada célula, imitando como a grade do Instagram aparece com espaços finos. Ajuste a largura do gutter para casar com o preview da rede social se quiser que o resultado na tela fique idêntico à imagem de origem.