Skip to content

Ferramenta em Python para dividir imagens em colunas iguais ou de largura fixa. Suporta vários formatos, cria configuração automática, organiza saídas e regista logs. Inclui run.bat para instalar dependências e correr de forma simples, com opção interativa ou por linha de comandos.

Notifications You must be signed in to change notification settings

eliaspc2/SplitImage

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 

Repository files navigation

SplitImage - Versão Melhorada

Ferramenta avançada para dividir imagens em partes iguais ou de largura/altura fixa, com suporte a divisão horizontal e vertical, sistema de undo, modo batch e muito mais.

🚀 Funcionalidades Novas

✨ Divisão Avançada

  • Divisão Horizontal: Divide imagens em colunas verticais
  • Divisão Vertical: Divide imagens em faixas horizontais
  • Partes Iguais: Divide em N partes de tamanhos similares
  • Tamanho Fixo: Divide usando largura/altura fixa
  • Sobreposição: Adiciona pixels de sobreposição entre partes

🎯 Funcionalidades Inteligentes

  • Sistema de Undo: Desfaz a última operação automaticamente
  • Modo Batch: Aplica mesmas configurações a várias imagens
  • Preview Mode: Visualiza como ficará antes de processar
  • Templates: Organiza saídas com nomes personalizados
  • Barra de Progresso: Para operações com muitas partes

🛡️ Melhorias de Robustez

  • Validação Inteligente: Verifica tamanhos mínimos e uso de memória
  • Tratamento de Erros: Mensagens específicas para cada tipo de problema
  • Logs Detalhados: Histórico completo de operações
  • Verificação de Espaço: Alerta se pouco espaço em disco

📁 Estrutura de Arquivos

projeto/
├── split_image.py           # Script principal melhorado
├── run.bat                  # Executável Windows atualizado
├── split_image.ini          # Configuração (criado automaticamente)
├── requirements.txt         # Dependências (criado automaticamente)
├── README.md               # Esta documentação
├── entrada/                # Coloque suas imagens aqui
├── saidas_split/          # Imagens processadas aparecerão aqui
└── logs/                  # Logs e histórico de undo
    ├── run_split.log      # Log das operações
    └── undo_history.json  # Histórico para undo

🏃‍♂️ Como Usar

Método 1: Interface Interativa (Recomendado)

  1. Coloque imagens na pasta entrada/
  2. Execute run.bat (duplo clique)
  3. Siga o menu interativo para cada imagem

Método 2: Linha de Comando

Exemplos Básicos:

# Dividir imagem em 5 partes iguais horizontais
python split_image.py --image entrada/foto.jpg --parts 5

# Dividir com largura fixa de 1000px
python split_image.py --image entrada/foto.jpg --fixed 1000

# Divisão vertical em 3 partes
python split_image.py --image entrada/foto.jpg --parts 3 --vertical

# Com sobreposição de 50px
python split_image.py --image entrada/foto.jpg --fixed 800 --overlap 50

# Apenas preview (não salva)
python split_image.py --image entrada/foto.jpg --parts 4 --preview

Operações Especiais:

# Desfazer última operação
python split_image.py --undo

# Forçar modo batch
python split_image.py --batch

# Usar arquivo de config personalizado
python split_image.py --ini minha_config.ini

🎮 Menu Interativo Melhorado

Arquivo: foto.jpg (3000x2000px)
Largura fixa 1040px → ~3 partes horizontais  
Altura fixa 1040px → ~2 partes verticais

[ E ] Partes iguais horizontais
[ F ] Largura fixa horizontal  
[ V ] Divisão vertical
[ P ] Preview (testar configurações)
[ U ] Desfazer última operação
[ S ] Saltar
[ Q ] Terminar
[ B ] Sair do modo batch (se ativo)

⚙️ Configuração Automática

O programa cria automaticamente split_image.ini na primeira execução. Principais opções que podes editar:

[split]
# Configurações básicas
num_parts = 5
format = png
quality = 95

# Funcionalidades novas  
overlap_px = 0              # Sobreposição entre partes
batch_mode = false          # Modo batch automático
enable_undo = true          # Sistema de undo
max_memory_mb = 500         # Limite de memória

# Organização
output_template = {image_name}  # Template para nomes de pastas
clean_outputs = false       # Limpar pastas antes de processar

Variáveis do Template

  • {image_name}: Nome da imagem sem extensão
  • {date}: Data atual (AAAAMMDD)
  • {time}: Hora atual (HHMMSS)
  • {datetime}: Data e hora (AAAAMMDD_HHMMSS)

🔧 Funcionalidades Detalhadas

Sistema de Undo 🔄

  • Automático: Cada operação é salva no histórico
  • Menu: Use [U] no menu interativo
  • CLI: Use python split_image.py --undo
  • Seguro: Remove arquivos criados e limpa pastas vazias
  • Histórico: Mantém até 10 operações

Modo Batch 📦

  • Ativação: Pergunta automaticamente ou --batch
  • Eficiente: Aplica mesma configuração a todas as imagens
  • Flexível: Pode ser desativado com [B] no menu
  • Rápido: Processamento sem interrupções

Preview Mode 👀

  • Seguro: Mostra como ficará sem salvar nada
  • Detalhado: Lista todas as partes com coordenadas exatas
  • Útil: Para testar antes de processar imagens grandes
  • Rápido: Execução instantânea

Sobreposição (Overlap) 🎯

  • Horizontal: Partes se sobrepõem na largura
  • Vertical: Partes se sobrepõem na altura
  • Exemplo: Imagem 1000px com 2 partes + 100px overlap = partes de 0-600px e 400-1000px
  • Uso: Ideal para panoramas ou quando precisas de bordas comuns

📋 Formatos Suportados

Entrada

PNG, JPG, JPEG, WEBP, BMP, TIF, TIFF

Saída

  • PNG: Melhor para transparências
  • JPG: Melhor para fotos (qualidade configurável)
  • WEBP: Boa compressão moderna
  • BMP: Compatibilidade máxima
  • TIF: Uso profissional

📊 Exemplos Práticos

Caso 1: Banner para Web

# Banner 3000x600px → 3 partes de 1000px cada
python split_image.py --image banner.png --fixed 1000

Caso 2: Panorama com Sobreposição

# Panorama → partes com 100px overlap para montagem
python split_image.py --image panorama.jpg --fixed 2000 --overlap 100

Caso 3: Lote de Fotos Verticais

# Dividir várias fotos em 4 faixas horizontais cada
python split_image.py --parts 4 --vertical --batch

Caso 4: Testar Configurações

# Ver como ficará sem salvar
python split_image.py --image foto.jpg --parts 6 --preview

🚨 Melhorias de Segurança

Validações Automáticas

  • Tamanho Mínimo: Ignora partes muito pequenas
  • Memória: Alerta para imagens que podem usar muita RAM
  • Espaço: Verifica se há espaço suficiente em disco
  • Formato: Só processa formatos suportados
  • Parâmetros: Valida todos os valores de entrada

Tratamento de Erros Específico

  • 🔧 Imagem Corrompida: Mensagem clara e pula para próxima
  • 💾 Falta de Memória: Sugere reduzir partes ou aumentar limite
  • 💿 Disco Cheio: Para com aviso antes de corromper arquivos
  • ⌨️ Interrupção: Ctrl+C para parar graciosamente

⚡ Dicas de Performance

Para Imagens Grandes (>50MB)

  1. Aumentar Memória: Editar max_memory_mb = 1000 no INI
  2. Usar Preview: Testar configurações antes
  3. Formatos Eficientes: WEBP ou JPG em vez de PNG
  4. Monitorar Logs: Verificar tempos no logs/run_split.log

Para Muitas Imagens

  1. Modo Batch: Evita cliques repetidos
  2. Templates: output_template = {date}_{image_name}
  3. Cleanup: clean_outputs = true evita acúmulo

🔍 Solução de Problemas

Problemas Comuns

"Python não encontrado"

  • Instalar Python 3.8+ de python.org
  • Marcar "Add to PATH" durante instalação

"Erro ao criar ambiente virtual"

  • Verificar permissões da pasta
  • Tentar executar como administrador
  • Verificar espaço em disco

"Imagem muito grande"

  • Editar max_memory_mb no arquivo split_image.ini
  • Usar modo preview primeiro
  • Dividir em menos partes

Ver Logs

# Log da última execução
notepad logs/run_split.log

# Histórico de operações desfeitas
notepad logs/undo_history.json

📈 O Que Mudou da Versão Original

✅ Funcionalidades Completamente Novas

  • Divisão vertical além da horizontal
  • 🔄 Sistema completo de undo com histórico
  • 👀 Modo preview para testar sem salvar
  • 📦 Modo batch para automatizar
  • 🎯 Sobreposição configurável
  • 📁 Templates para organização
  • Barra de progresso visual

🛡️ Muito Mais Robusto

  • 🔍 Validação rigorosa de todos os parâmetros
  • 💾 Gestão inteligente de memória e disco
  • 🚨 Erros específicos em vez de crashes
  • 📋 Logs detalhados para debugging
  • Recuperação automática de falhas

🎨 Interface Muito Melhor

  • 📊 Estimativas úteis (quantas partes vai gerar)
  • ⌨️ Mais opções de linha de comando
  • 🎛️ Configuração mais flexível
  • 🎯 Feedback claro sobre progresso e resultados

🔄 100% Compatível

  • ✅ Todos os comandos antigos funcionam igual
  • ✅ Arquivo INI mantém estrutura original
  • ✅ Pastas e nomes iguais
  • ✅ Pode ser usado como "drop-in replacement"

🚀 Começar Agora

  1. Substitua o split_image.py antigo pelo novo
  2. Execute run.bat normalmente
  3. Aproveite todas as funcionalidades novas!

A versão melhorada funciona exatamente igual à original, mas com muito mais poder e segurança. Experimenta as novas funcionalidades gradualmente! 🎉


Developed with ❤️ para facilitar o processamento de imagens em lote.

About

Ferramenta em Python para dividir imagens em colunas iguais ou de largura fixa. Suporta vários formatos, cria configuração automática, organiza saídas e regista logs. Inclui run.bat para instalar dependências e correr de forma simples, com opção interativa ou por linha de comandos.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published