62 lines
1.3 KiB
Bash
Executable File
62 lines
1.3 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
|
|
set -e
|
|
|
|
if ! command -v magick &> /dev/null; then
|
|
echo "ImageMagick (magick) is required. Install it first."
|
|
exit 1
|
|
fi
|
|
|
|
mkdir -p bg blog
|
|
|
|
# Final exact dimensions (not just width anymore)
|
|
BG_WIDTH=1920
|
|
BG_HEIGHT=1080 # Hero (16:9)
|
|
|
|
BLOG_WIDTH=800
|
|
BLOG_HEIGHT=600 # 3-column cards (4:3 is a safe default)
|
|
|
|
# Quality
|
|
BG_QUALITY=82
|
|
BLOG_QUALITY=75
|
|
|
|
echo "Converting JPG → WebP with fixed dimensions + center crop..."
|
|
|
|
for img in *.jpg *.jpeg; do
|
|
[ -e "$img" ] || continue
|
|
|
|
filename=$(basename "$img")
|
|
name="${filename%.*}"
|
|
|
|
echo "→ Processing $img"
|
|
|
|
# HERO / BG (cover + center crop)
|
|
magick "$img" \
|
|
-resize ${BG_WIDTH}x${BG_HEIGHT}^ \
|
|
-gravity center \
|
|
-extent ${BG_WIDTH}x${BG_HEIGHT} \
|
|
-strip \
|
|
-quality $BG_QUALITY \
|
|
-define webp:method=6 \
|
|
-define webp:autofilter=true \
|
|
-define webp:thread-level=1 \
|
|
-colorspace sRGB \
|
|
"bg/${name}.webp"
|
|
|
|
# BLOG (cover + center crop)
|
|
magick "$img" \
|
|
-resize ${BLOG_WIDTH}x${BLOG_HEIGHT}^ \
|
|
-gravity center \
|
|
-extent ${BLOG_WIDTH}x${BLOG_HEIGHT} \
|
|
-strip \
|
|
-quality $BLOG_QUALITY \
|
|
-define webp:method=6 \
|
|
-define webp:autofilter=true \
|
|
-define webp:thread-level=1 \
|
|
-colorspace sRGB \
|
|
"blog/${name}.webp"
|
|
|
|
done
|
|
|
|
echo "Done! Images cropped + standardized in ./bg and ./blog"
|