Watermark Script > magick iTerminal (Macbook Pro)
brew install imagemagick
nano watermark.sh
#!/bin/bash
BASE_DIR="/Users/muhdsyafiq/Pictures/GMART AUTOCITY/CARS"
WATERMARK="/Users/muhdsyafiq/Pictures/GMART AUTOCITY/@syafiqjual transparent.png"
echo "======================================"
echo "š GMART AUTOCITY WATERMARK TOOL"
echo "======================================"
# Verify watermark file exists
if [ ! -f "$WATERMARK" ]; then
Ā Ā echo "ā Watermark file not found:"
Ā Ā echo "$WATERMARK"
Ā Ā exit 1
fi
########################################
# STEP 1 - REMOVE EXACT DUPLICATES
########################################
echo ""
echo "š Step 1: Detecting duplicate images..."
declare -A seen_hashes
duplicates_removed=0
while IFS= read -r file
do
Ā Ā hash=$(md5 -q "$file")
Ā Ā if [[ -n "${seen_hashes[$hash]}" ]]; then
Ā Ā Ā Ā echo "šļø Removing duplicate:"
Ā Ā Ā Ā echo " Ā $file"
Ā Ā Ā Ā rm -f "$file"
Ā Ā Ā Ā ((duplicates_removed++))
Ā Ā else
Ā Ā Ā Ā seen_hashes[$hash]="$file"
Ā Ā fi
done < <(
find "$BASE_DIR" \
Ā Ā -type d -name "*_WM" -prune -o \
Ā Ā -type f \( \
Ā Ā Ā Ā -iname "*.jpg" -o \
Ā Ā Ā Ā -iname "*.jpeg" -o \
Ā Ā Ā Ā -iname "*.png" -o \
Ā Ā Ā Ā -iname "*.heic" -o \
Ā Ā Ā Ā -iname "*.webp" \
Ā Ā \) -print
)
echo "š§¼ Duplicate cleanup done."
echo "š Duplicates removed: $duplicates_removed"
########################################
# STEP 2 - WATERMARK IMAGES
########################################
echo ""
echo "š¼ļø Step 2: Watermarking images..."
watermarked=0
skipped=0
while IFS= read -r file
do
Ā Ā dir=$(dirname "$file")
Ā Ā name=$(basename "$file")
Ā Ā folder_name=$(basename "$dir")
Ā Ā output_dir="$dir/${folder_name}_WM"
Ā Ā output_file="$output_dir/$name"
Ā Ā mkdir -p "$output_dir"
Ā Ā # Skip if already processed
Ā Ā if [ -f "$output_file" ]; then
Ā Ā Ā Ā echo "āļø Already exists:"
Ā Ā Ā Ā echo " Ā $output_file"
Ā Ā Ā Ā ((skipped++))
Ā Ā Ā Ā continue
Ā Ā fi
Ā Ā magick "$file" \
Ā Ā Ā Ā \( "$WATERMARK" \
Ā Ā Ā Ā -resize 300x300 \
Ā Ā Ā Ā -alpha set \
Ā Ā Ā Ā -channel A \
Ā Ā Ā Ā -evaluate multiply 0.25 \
Ā Ā Ā Ā +channel \) \
Ā Ā Ā Ā -gravity southeast \
Ā Ā Ā Ā -geometry +30+30 \
Ā Ā Ā Ā -composite \
Ā Ā Ā Ā "$output_file"
Ā Ā if [ $? -eq 0 ]; then
Ā Ā Ā Ā echo "ā Watermarked:"
Ā Ā Ā Ā echo " Ā $name"
Ā Ā Ā Ā ((watermarked++))
Ā Ā else
Ā Ā Ā Ā echo "ā Failed:"
Ā Ā Ā Ā echo " Ā $file"
Ā Ā fi
done < <(
find "$BASE_DIR" \
Ā Ā -type d -name "*_WM" -prune -o \
Ā Ā -type f \( \
Ā Ā Ā Ā -iname "*.jpg" -o \
Ā Ā Ā Ā -iname "*.jpeg" -o \
Ā Ā Ā Ā -iname "*.png" -o \
Ā Ā Ā Ā -iname "*.heic" -o \
Ā Ā Ā Ā -iname "*.webp" \
Ā Ā \) -print
)
echo ""
echo "======================================"
echo "š DONE!! TOTAL SUMMARY:"
echo "======================================"
echo "ā Watermarked : $watermarked"
echo "ā ļø Skipped Ā Ā : $skipped"
echo "š ļø DuplicatesĀ : $duplicates_removed"
echo "======================================"
echo "######################################"
echo "Script written by SAsyafiq @syafiqjual"
echo "######################################"
chmod +x watermark.sh
./watermark.sh

















