68 lines
2.3 KiB
Bash
Executable file
68 lines
2.3 KiB
Bash
Executable file
#!/bin/bash
|
|
# Script para optimizar imágenes grandes del bloque 00
|
|
# Genera versiones WebP y PNG optimizadas
|
|
|
|
set -e
|
|
|
|
SRC_DIR="assets/images/bloque_00"
|
|
DEST_DIR="public/assets/infografias/bloque-0-fundamentos"
|
|
|
|
echo "🖼️ Optimizando imágenes del bloque 00..."
|
|
|
|
if [ ! -d "$SRC_DIR" ]; then
|
|
echo "❌ Error: No se encuentra el directorio $SRC_DIR"
|
|
exit 1
|
|
fi
|
|
|
|
mkdir -p "$DEST_DIR"
|
|
|
|
# Función para limpiar nombre de archivo
|
|
clean_name() {
|
|
echo "$1" | tr '[:upper:]' '[:lower:]' | tr ' ' '-' | tr -d ':' | sed 's/[áéíóúÁÉÍÓÚ]/aeiou/g' | sed 's/[^a-z0-9-]//g'
|
|
}
|
|
|
|
# Procesar cada PNG
|
|
for img in "$SRC_DIR"/*.png; do
|
|
if [ -f "$img" ]; then
|
|
filename=$(basename "$img" .png)
|
|
clean_name=$(clean_name "$filename")
|
|
|
|
echo " 📸 Procesando: $filename -> $clean_name"
|
|
|
|
# Redimensionar si es muy grande (max 1920px de ancho) y convertir a WebP (85% calidad)
|
|
convert "$img" -resize 1920x1920> -quality 85 "$DEST_DIR/$clean_name.webp" 2>/dev/null || {
|
|
echo " ⚠️ Error creando WebP, intentando PNG optimizado..."
|
|
}
|
|
|
|
# Crear versión PNG optimizada como fallback
|
|
convert "$img" -resize 1920x1920> -quality 85 -strip "$DEST_DIR/$clean_name.png" 2>/dev/null || {
|
|
echo " ⚠️ Error optimizando PNG"
|
|
}
|
|
|
|
# Intentar con pngquant si está disponible (mejor compresión)
|
|
if command -v pngquant &> /dev/null; then
|
|
if [ -f "$DEST_DIR/$clean_name.png" ]; then
|
|
pngquant --quality=65-80 --ext .png --force "$DEST_DIR/$clean_name.png" 2>/dev/null || true
|
|
fi
|
|
fi
|
|
|
|
# Mostrar reducción de tamaño
|
|
original_size=$(stat -f%z "$img" 2>/dev/null || stat -c%s "$img" 2>/dev/null)
|
|
if [ -f "$DEST_DIR/$clean_name.webp" ]; then
|
|
new_size=$(stat -f%z "$DEST_DIR/$clean_name.webp" 2>/dev/null || stat -c%s "$DEST_DIR/$clean_name.webp" 2>/dev/null)
|
|
reduction=$((100 - (new_size * 100 / original_size)))
|
|
echo " ✅ WebP creado: $(numfmt --to=iec-i --suffix=B $new_size 2>/dev/null || echo "${new_size}B") (reducción: ~${reduction}%)"
|
|
fi
|
|
fi
|
|
done
|
|
|
|
echo ""
|
|
echo "✅ Optimización completada"
|
|
echo "📊 Imágenes optimizadas en: $DEST_DIR"
|
|
echo ""
|
|
echo "⚠️ NOTA: Las imágenes originales se mantienen en $SRC_DIR"
|
|
echo " Después de verificar que todo funciona, puedes eliminarlas con:"
|
|
echo " rm -rf $SRC_DIR"
|
|
|
|
|