Skip to content

AdaptaBrasil/gerador-ods-cli-python

Repository files navigation

Gerador de Mosaico ODS - CLI Python 🎨🐍

Versão linha de comando em Python do Gerador de Mosaico ODS | AdaptaBrasil MCTI

Este script permite gerar mosaicos das imagens ODS diretamente pela linha de comando, com todas as configurações definidas em um arquivo .env.

📋 Pré-requisitos

  • Python 3.8 ou superior
  • pip (gerenciador de pacotes Python)

🚀 Instalação

1. Navegue até o diretório do CLI Python:

cd cli-generator-python

2. Instale as dependências:

Instalação Básica (Apenas PNG - Recomendada para Iniciantes):

pip install Pillow python-dotenv

Instalação Completa (com suporte a SVG):

pip install -r requirements.txt

⚠️ Nota sobre SVG: O suporte a SVG requer o cairosvg, que precisa de bibliotecas do sistema (GTK/Cairo). Se tiver problemas, use apenas PNG - funciona perfeitamente!

Para instalar suporte a SVG, consulte: INSTALL_CAIRO.md

3. Configure o arquivo .env:

No Windows:

copy .env.example .env

No Linux/Mac:

cp .env.example .env

4. Edite o arquivo .env com suas configurações preferidas

📖 Uso

Sintaxe Básica

python gerador_ods.py <números-das-imagens>

Exemplos Práticos

Gerar mosaico com 7 imagens:

python gerador_ods.py 1,2,3,4,5,6,7

Todas as 17 ODS:

python gerador_ods.py 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17

Imagens específicas com espaços (opcional):

python gerador_ods.py "1, 3, 5, 7, 9, 11, 13, 15, 17"

Apenas algumas ODS:

python gerador_ods.py 1,4,7,10,13

Com números repetidos (criar padrões):

# Repetir imagens para criar padrões
python gerador_ods.py 1,1,2,2,3,3,4,4

# Banner com ênfase em certas ODS
python gerador_ods.py 1,13,13,13,17

# Padrão alternado
python gerador_ods.py 1,2,1,2,1,2,1,2

Opções de Linha de Comando

# Exibir ajuda
python gerador_ods.py --help
python gerador_ods.py -h

# Exibir versão
python gerador_ods.py --version
python gerador_ods.py -v

⚙️ Configurações (.env)

📐 Layout

Variável Descrição Valores Padrão
IMAGES_PER_ROW Imagens por linha 1 a 17 7
IMAGE_SIZE Tamanho de cada imagem (px) 50 a 500 200
SPACING Espaçamento entre imagens (px) 0 a 50 0

🎨 Fundo

Variável Descrição Valores Padrão
BACKGROUND_TYPE Tipo de fundo transparent ou solid transparent
BACKGROUND_COLOR Cor de fundo (hexadecimal) Ex: #ffffff, #f0f0f0 #ffffff
BACKGROUND_OPACITY Opacidade do fundo 0 a 100 100

💾 Saída

Variável Descrição Valores Padrão
OUTPUT_DIR Diretório de saída Caminho relativo/absoluto ./output
OUTPUT_FILENAME Nome base do arquivo String mosaico-ods
OUTPUT_FORMAT Formato de saída png ou jpg png
OUTPUT_QUALITY Qualidade JPG 1 a 100 95

🖼️ Imagens

Variável Descrição Valores Padrão
IMAGES_PATH Caminho para as imagens ODS Caminho relativo ./assets/images/ods
IMAGE_FORMAT Formato preferencial svg ou png svg

📝 Exemplos de Configuração

Exemplo 1: Mosaico Compacto (sem espaçamento)

IMAGES_PER_ROW=17
IMAGE_SIZE=150
SPACING=0
BACKGROUND_TYPE=transparent
OUTPUT_FORMAT=png

Comando:

python gerador_ods.py 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17

Resultado: Banner horizontal com todas as 17 ODS sem espaços.


Exemplo 2: Grid 3x6 com fundo branco

IMAGES_PER_ROW=3
IMAGE_SIZE=200
SPACING=10
BACKGROUND_TYPE=solid
BACKGROUND_COLOR=#ffffff
BACKGROUND_OPACITY=100
OUTPUT_FORMAT=png

Comando:

python gerador_ods.py 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17

Resultado: Grade organizada 3 colunas com fundo branco sólido.


Exemplo 3: Banner Horizontal para Site

IMAGES_PER_ROW=7
IMAGE_SIZE=180
SPACING=5
BACKGROUND_TYPE=transparent
OUTPUT_FORMAT=png

Comando:

python gerador_ods.py 1,2,3,4,5,6,7

Resultado: Banner com 7 ODS perfeito para cabeçalhos.


Exemplo 4: Fundo Colorido Semi-transparente

IMAGES_PER_ROW=4
IMAGE_SIZE=200
SPACING=10
BACKGROUND_TYPE=solid
BACKGROUND_COLOR=#e3f2fd
BACKGROUND_OPACITY=80
OUTPUT_FORMAT=png

Comando:

python gerador_ods.py 1,2,3,4,5,6,7,8,9,10,11,12

Resultado: Grid 4x3 com fundo azul claro semi-transparente.


Exemplo 5: Exportar como JPG (sem transparência)

IMAGES_PER_ROW=5
IMAGE_SIZE=250
SPACING=0
BACKGROUND_TYPE=solid
BACKGROUND_COLOR=#ffffff
BACKGROUND_OPACITY=100
OUTPUT_FORMAT=jpg
OUTPUT_QUALITY=95

Comando:

python gerador_ods.py 1,2,3,4,5,6,7,8,9,10

Resultado: Mosaico em JPG de alta qualidade com fundo branco.


📊 Formatos de Saída

PNG (Recomendado)

  • ✅ Suporta transparência
  • ✅ Qualidade sem perdas
  • ✅ Ideal para web e design
  • 📏 Tamanho de arquivo maior

JPG/JPEG

  • ❌ Não suporta transparência
  • ⚠️ Compressão com perdas
  • ✅ Tamanho de arquivo menor
  • ✅ Ideal para impressão

🗂️ Estrutura de Arquivos Gerados

Os arquivos são salvos com o seguinte formato de nome:

Com fundo transparente:

output/mosaico-ods-transparente-2025-01-24-143022.png

Com fundo sólido:

output/mosaico-ods-2025-01-24-143022.png

Em JPG:

output/mosaico-ods-2025-01-24-143022.jpg

🔧 Solução de Problemas

Erro: "No module named 'PIL'"

pip install Pillow

Erro: "No module named 'dotenv'"

pip install python-dotenv

Erro: "Arquivo .env não encontrado"

# Copie o arquivo de exemplo
cp .env.example .env

Erro ao carregar SVG

O script usa automaticamente PNG como fallback. Se quiser suporte a SVG:

Veja o guia completo: INSTALL_CAIRO.md

Ou use o instalador automático:

Windows:

instalar_cairo.bat

Linux/Mac:

chmod +x instalar_cairo.sh
./instalar_cairo.sh

Testar instalação:

python test_cairo.py

Imagens não encontradas

Verifique se o caminho em IMAGES_PATH está correto:

# Caminho relativo ao script
IMAGES_PATH=./assets/images/ods

📦 Dependências

Obrigatórias

  • Pillow (>=10.0.0): Manipulação de imagens
  • python-dotenv (>=1.0.0): Leitura de variáveis de ambiente

Opcionais

  • cairosvg (>=2.7.0): Suporte a imagens SVG

🎯 Casos de Uso

1. Apresentações

Gere mosaicos para slides e apresentações:

python gerador_ods.py 1,2,3,4,5,6

2. Sites e Blogs

Crie banners para sites institucionais:

python gerador_ods.py 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17

3. Redes Sociais

Mosaicos para posts em redes sociais:

python gerador_ods.py 1,3,5,7,9,11,13,15,17

4. Impressão

Mosaicos em alta resolução para impressão:

IMAGE_SIZE=500
OUTPUT_FORMAT=jpg
OUTPUT_QUALITY=100

5. Documentos

Ilustrações para relatórios e documentos:

python gerador_ods.py 4,7,11,13

6. Padrões Customizados ⭐ (NOVO)

Crie padrões visuais repetindo imagens:

Padrão espelhado:

python gerador_ods.py 1,2,3,4,5,4,3,2,1

Ênfase em ODS específicas:

# Destacar ODS 13 (Clima)
python gerador_ods.py 1,2,13,13,13,14,15

Padrão decorativo:

# Criar borda com repetições
python gerador_ods.py 1,1,1,2,3,4,5,6,1,1,1

Grid com repetições:

# 3x3 com padrão
python gerador_ods.py 1,2,1,2,3,2,1,2,1

🤖 Automação

Script Bash (Linux/Mac)

#!/bin/bash
# gerar_mosaicos.sh

# Todas as ODS
python gerador_ods.py 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17

# Apenas sociais
python gerador_ods.py 1,2,3,4,5

# Apenas ambientais
python gerador_ods.py 13,14,15

echo "Mosaicos gerados com sucesso!"

Script Batch (Windows)

@echo off
REM gerar_mosaicos.bat

REM Todas as ODS
python gerador_ods.py 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17

REM Apenas sociais
python gerador_ods.py 1,2,3,4,5

REM Apenas ambientais
python gerador_ods.py 13,14,15

echo Mosaicos gerados com sucesso!
pause

📚 Informações Adicionais

ODS - Objetivos de Desenvolvimento Sustentável

As 17 imagens representam os Objetivos de Desenvolvimento Sustentável da ONU:

  1. Erradicação da pobreza
  2. Fome zero e agricultura sustentável
  3. Saúde e bem-estar
  4. Educação de qualidade
  5. Igualdade de gênero
  6. Água potável e saneamento
  7. Energia limpa e acessível
  8. Trabalho decente e crescimento econômico
  9. Indústria, inovação e infraestrutura
  10. Redução das desigualdades
  11. Cidades e comunidades sustentáveis
  12. Consumo e produção responsáveis
  13. Ação contra a mudança global do clima
  14. Vida na água
  15. Vida terrestre
  16. Paz, justiça e instituições eficazes
  17. Parcerias e meios de implementação

🤝 Contribuindo

Contribuições são bem-vindas! Sinta-se à vontade para:

  1. Reportar bugs
  2. Sugerir novas funcionalidades
  3. Melhorar a documentação
  4. Enviar pull requests

📄 Licença

Este projeto está sob a licença MIT. Veja o arquivo LICENSE para mais detalhes.

🙏 Créditos

📧 Suporte

Para dúvidas ou problemas:

  • Abra uma issue no GitHub
  • Consulte a documentação do projeto web
  • Entre em contato com a equipe Adapta Brasil MCTI

⭐ Se este projeto foi útil, considere dar uma estrela no GitHub!

Adapta Brasil MCTI | Desenvolvendo soluções sustentáveis

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published