-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathoptimize-images.sh
More file actions
executable file
·92 lines (72 loc) · 2.59 KB
/
Copy pathoptimize-images.sh
File metadata and controls
executable file
·92 lines (72 loc) · 2.59 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
#!/bin/bash
# Image Optimization Script
# This script creates optimized WebP versions and resized variants of your images
# ./optimize-images.sh
set -e
# Colors for output
GREEN='\033[0;32m'
BLUE='\033[0;34m'
NC='\033[0m' # No Color
echo -e "${BLUE}Image Optimization Script${NC}"
echo "This will create optimized WebP versions of your images"
echo ""
# Check if required tools are installed
if ! command -v convert &> /dev/null && ! command -v magick &> /dev/null; then
echo "ImageMagick is not installed."
echo "Install it with: brew install imagemagick"
exit 1
fi
# Determine which command to use (ImageMagick 7 uses 'magick', older versions use 'convert')
if command -v magick &> /dev/null; then
CONVERT_CMD="magick"
else
CONVERT_CMD="convert"
fi
# Create optimized directory if it doesn't exist
mkdir -p photos/optimized
# Function to optimize images in a directory
optimize_directory() {
local source_dir=$1
local dir_name=$(basename "$source_dir")
echo -e "${GREEN}Processing $dir_name...${NC}"
# Create output directory
mkdir -p "photos/optimized/$dir_name"
# Process each image
for ext in jpg JPG jpeg JPEG; do
for img in "$source_dir"/*."$ext"; do
[ -e "$img" ] || continue
filename=$(basename "$img")
name="${filename%.*}"
echo " - Optimizing $filename"
# Create WebP version: cap width at 2000px, quality 78
$CONVERT_CMD "$img" -resize '2000x>' -quality 78 -define webp:method=6 "photos/optimized/$dir_name/${name}.webp"
# Create responsive sizes (optional - uncomment if needed)
# $CONVERT_CMD "$img" -resize 800x -quality 80 "photos/optimized/$dir_name/${name}-800w.webp"
# $CONVERT_CMD "$img" -resize 400x -quality 80 "photos/optimized/$dir_name/${name}-400w.webp"
done
done
}
# Optimize each photo directory
if [ -d "photos/Glacier" ]; then
optimize_directory "photos/Glacier"
fi
if [ -d "photos/Seattle" ]; then
optimize_directory "photos/Seattle"
fi
if [ -d "photos/SF" ]; then
optimize_directory "photos/SF"
fi
if [ -d "photos/Spain" ]; then
optimize_directory "photos/Spain"
fi
if [ -d "photos/Chinatown" ]; then
optimize_directory "photos/Chinatown"
fi
echo ""
echo -e "${GREEN}✓ Optimization complete!${NC}"
echo "Optimized images are in photos/optimized/"
echo ""
echo "Next steps:"
echo "1. Check the optimized images to ensure quality is acceptable"
echo "2. Run the script again with responsive sizes if needed (uncomment lines in script)"
echo "3. The HTML will automatically use WebP with JPEG fallback"