diff --git a/images_resize.sh b/images_resize.sh index da08804..7f91fbf 100755 --- a/images_resize.sh +++ b/images_resize.sh @@ -8,20 +8,21 @@ echo "Resizing large JPGs in $(pwd)" MAX_PIXELS=8000000 +MAGICK_COMMENT="magick:resize=8mp,quality=85,sampling=4:2:0" find . -regextype posix-egrep -regex ".*\.(jpg|JPG|JPEG|jpeg)$" -print0 | while IFS= read -r -d '' f do - # Check pixel count before processing - read -r IMG_W IMG_H < <(~/Applications/magick identify -format "%w %h" "$f" 2>/dev/null) - if [[ -n "$IMG_W" && -n "$IMG_H" && $((IMG_W * IMG_H)) -le "$MAX_PIXELS" ]]; then - echo "Skipping $f: ${IMG_W}x${IMG_H} already within limit" + # Skip files already processed with these parameters + COMMENT=$(~/Applications/magick identify -format "%c" "$f" 2>/dev/null) + if [[ "$COMMENT" == "$MAGICK_COMMENT" ]]; then + echo "Skipping $f: already processed" continue fi # Get file size before resizing SIZE_BEFORE=$(stat -f%z "$f" 2>/dev/null || stat -c%s "$f" 2>/dev/null) - ~/Applications/magick "$f" -resize "${MAX_PIXELS}@@\>" -sampling-factor 4:2:0 -strip -quality 85% "$f" + ~/Applications/magick "$f" -resize "${MAX_PIXELS}@@\>" -sampling-factor 4:2:0 -strip -quality 85% -set comment "$MAGICK_COMMENT" "$f" # Get file size after resizing SIZE_AFTER=$(stat -f%z "$f" 2>/dev/null || stat -c%s "$f" 2>/dev/null)