Transforme uma única imagem em um pôster grande dividido em até 6 páginas para impressão, com edição visual por página e exportação compactada em .zip.
Aplicação 100% front-end, sem backend: todo o processamento acontece localmente no navegador.
O Make Your Poster é um editor web para quem quer imprimir imagens em formato de pôster usando folhas separadas. A proposta é simples: você envia uma imagem, ajusta os parâmetros visuais e gera as páginas prontas para impressão.
| Valor | Como isso aparece no app |
|---|---|
| Privacidade | A imagem é processada localmente no navegador (sem upload para servidor). |
| Controle fino | Ajustes de nitidez, contraste, saturação, redimensionamento, orientação e margem. |
| Precisão por página | Editor individual com arraste de crop e desfazer por página. |
| Saída prática | Geração em JPG, PNG ou PDF com download em arquivo ZIP. |
- ✅ Upload de imagem
JPGePNG - ✅ Preview em
canvas - ✅ Grade de divisão por páginas (até 6)
- ✅ Quantidade de páginas: 1 a 6
- ✅ Orientação: vertical ou horizontal
- ✅ Margem em mm
- ✅ Filtros e processamento:
- Nitidez
- Contraste
- Saturação
- Redimensionamento (%)
- ✅ Seleção individual de página (
P1,P2, ...) - ✅ Arraste para reposicionar o crop
- ✅ Histórico de desfazer por página
- ✅ Miniaturas com offsets aplicados
- ✅ Seletor de formato de saída (
JPG,PNG,PDF) - ✅ Geração e download em ZIP
- ✅ PDF com ajuste de página para impressão (A4 no jsPDF)
- ✅ Tema claro/escuro com persistência local
- ✅ Alertas com SweetAlert2 e fallback para
window.alert - ✅ Alertas de runtime quando dependências externas não carregam
- ✅ Fila de renderização com
requestAnimationFrame
| Camada | Tecnologia |
|---|---|
| Estrutura | HTML (index.html) |
| Lógica | JavaScript puro (src/js/app.js) |
| Renderização | Canvas API |
| Estilo | Tailwind CSS (via CDN) |
| Biblioteca | Uso no projeto |
|---|---|
| Tailwind CSS | Estilização da interface |
| SweetAlert2 | Modais e mensagens de feedback |
| JSZip | Compactação e download de arquivos em .zip |
| jsPDF | Montagem de saída em PDF |
MakeYourPoster/
├─ index.html # Estrutura da UI, controles e carregamento de CDNs
└─ src/
└─ js/
└─ app.js # Estado global, renderização em canvas, editor por página e exportação
- Upload da imagem e validações de tipo/tamanho/dimensão.
- Aplicação de ajustes globais (filtros, orientação, resize).
- Cálculo de grid de páginas e offsets por página.
- Renderização de preview + editor individual.
- Exportação para formato escolhido e compactação em ZIP.
Checklist rápido de uso:
- ✅ Clique em Upload (JPG ou PNG).
- ✅ Defina a quantidade de páginas (1–6).
- ✅ Escolha orientação do poster.
- ✅ Ajuste margem, nitidez, contraste, saturação e redimensionamento.
- ✅ (Opcional) Edite páginas individualmente arrastando o crop.
- ✅ Clique em Confirmar e gerar poster.
- ✅ Selecione
JPG,PNGouPDFe baixe o.zip.
Como é um projeto estático, você pode rodar de forma simples:
- Abra o arquivo
index.html.
Use qualquer servidor estático (ex.: extensão Live Server do VS Code ou servidor HTTP simples).
Não há backend, banco de dados ou variáveis de ambiente obrigatórias para executar o app.
| Regra | Valor implementado |
|---|---|
| Tipos aceitos | image/jpeg, image/png |
| Tamanho máximo do arquivo | 25 MB |
| Dimensão máxima da imagem | 12000 px no maior lado |
| Quantidade de páginas | mínimo 1, máximo 6 |
| Margem | 0 a 20 mm |
| Redimensionamento | 25% a 200% |
| Contraste | 50% a 200% |
| Saturação | 0% a 200% |
| Nitidez | 0 a 100 |
Não. O processamento é local no navegador.
Até 6 páginas.
Sim. Há editor individual por página com arraste de crop e opção de desfazer.
Ideias de evolução (não necessariamente implementadas ainda):
- Presets de tamanho de papel (A3, A4, Letter, etc.)
- Guias de sobreposição para facilitar montagem física do pôster
- Exportação de projeto (salvar/restaurar configurações)
- Atalhos de teclado para fluxo de edição
- Internacionalização (pt-BR/en-US)
Contribuições são bem-vindas.
Sugestão de fluxo:
- Faça um fork do repositório.
- Crie uma branch para sua melhoria.
- Implemente e valide localmente.
- Abra um Pull Request com contexto claro da mudança.
A definir.
Se uma licença for adicionada ao repositório, esta seção deve ser atualizada para refletir o arquivo oficial.