🖼️ Guia de Otimização de Imagens no Windows
Este guia explica como usar o script de otimização de imagens no Windows.
📋 Pré-requisitos
1. Instalar ImageMagick
Opção A: Chocolatey (Recomendado)
choco install imagemagick
Opção B: Download Manual
- Acesse: https://imagemagick.org/script/download.php#windows
- Baixe o instalador
- Instale e adicione ao PATH
Verificar instalação:
magick -version
2. Instalar cwebp (Google WebP)
Opção A: Chocolatey
choco install webp
Opção B: Download Manual
- Acesse: https://developers.google.com/speed/webp/download
- Baixe o pacote para Windows
- Extraia e adicione ao PATH
Verificar instalação:
cwebp -version
🚀 Como Usar
Uso Básico
# Otimizar todas as imagens em assets\img
.\scripts\optimize_images.ps1
Opções Avançadas
# Especificar pasta diferente
.\scripts\optimize_images.ps1 -Path "assets\icons"
# Ajustar qualidade (1-100, padrão: 80)
.\scripts\optimize_images.ps1 -Quality 85
# Limitar largura máxima (padrão: 1920px)
.\scripts\optimize_images.ps1 -MaxWidth 1600
# Desabilitar conversão para WebP
.\scripts\optimize_images.ps1 -ConvertToWebP:$false
# Desabilitar redimensionamento
.\scripts\optimize_images.ps1 -Resize:$false
# Desabilitar compressão
.\scripts\optimize_images.ps1 -Compress:$false
# Modo de teste (não modifica arquivos)
.\scripts\optimize_images.ps1 -DryRun
Exemplo Completo
# Otimizar com qualidade alta, sem redimensionar
.\scripts\optimize_images.ps1 -Quality 90 -Resize:$false
# Apenas converter para WebP
.\scripts\optimize_images.ps1 -Resize:$false -Compress:$false
# Apenas redimensionar imagens grandes
.\scripts\optimize_images.ps1 -ConvertToWebP:$false -Compress:$false
📊 O que o Script Faz
- Converte para WebP: Cria versões WebP de todas as imagens (mantém original)
- Redimensiona: Reduz imagens maiores que 1920px mantendo proporção
- Comprime: Otimiza JPEG/PNG removendo metadados e reduzindo qualidade
⚙️ Parâmetros
| Parâmetro | Tipo | Padrão | Descrição |
|---|---|---|---|
-Path |
string | assets\img |
Pasta com imagens |
-Quality |
int | 80 |
Qualidade (1-100) |
-MaxWidth |
int | 1920 |
Largura máxima em pixels |
-ConvertToWebP |
switch | $true |
Converter para WebP |
-Resize |
switch | $true |
Redimensionar imagens grandes |
-Compress |
switch | $true |
Comprimir JPEG/PNG |
-DryRun |
switch | $false |
Modo de teste |
🔍 Verificar Resultados
# Ver tamanho das imagens antes/depois
Get-ChildItem assets\img -Recurse -Include *.jpg,*.png,*.webp |
Select-Object Name, Length, @{Name="Size";Expression={"{0:N2} KB" -f ($_.Length/1KB)}}
# Comparar tamanhos
Get-ChildItem assets\img -Recurse -Include *.jpg |
ForEach-Object {
$webp = $_.FullName -replace '\.(jpg|png)$', '.webp'
if (Test-Path $webp) {
$original = $_.Length
$converted = (Get-Item $webp).Length
$savings = $original - $converted
$percent = ($savings / $original) * 100
[PSCustomObject]@{
File = $_.Name
Original = "{0:N2} KB" -f ($original/1KB)
WebP = "{0:N2} KB" -f ($converted/1KB)
Savings = "{0:N2} KB ({1:N1}%)" -f ($savings/1KB), $percent
}
}
} | Format-Table -AutoSize
⚠️ Avisos Importantes
- Backup: Sempre faça backup antes de otimizar!
- Git: As imagens otimizadas serão modificadas
- WebP: Versões WebP são criadas, originais são mantidas
- Irreversível: A compressão reduz qualidade permanentemente
🐛 Solução de Problemas
Erro: “magick não é reconhecido”
- Verifique se ImageMagick está instalado
- Adicione ao PATH do sistema
- Reinicie o PowerShell
Erro: “cwebp não é reconhecido”
- Verifique se cwebp está instalado
- Adicione ao PATH do sistema
- Reinicie o PowerShell
Script não executa
# Permitir execução de scripts (apenas uma vez)
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
Imagens não são modificadas
- Verifique permissões de escrita
- Execute como administrador se necessário
- Verifique se os arquivos não estão em uso
📚 Recursos Adicionais
💡 Dicas
- Use DryRun primeiro: Teste com
-DryRunantes de aplicar - Qualidade balanceada: 80-85 é geralmente suficiente
- WebP primeiro: Converta para WebP antes de comprimir originais
- Backup: Sempre mantenha backups das imagens originais
- Versionamento: Commit as imagens otimizadas no Git
📝 Exemplo de Workflow
# 1. Fazer backup
Copy-Item assets\img assets\img.backup -Recurse
# 2. Testar otimização
.\scripts\optimize_images.ps1 -DryRun
# 3. Aplicar otimização
.\scripts\optimize_images.ps1 -Quality 85
# 4. Verificar resultados
Get-ChildItem assets\img -Recurse -Include *.webp | Measure-Object -Property Length -Sum
# 5. Commit no Git
git add assets\img
git commit -m "Otimizar imagens"