Automate Horizontal flip by command line single and secure
First:
#!/bin/bash
for f in "$@"; do
# Extract path, filename, and extension
DIR="$(dirname "$f")"
FILE="$(basename "$f")"
NAME="${FILE%.*}"
EXT="${FILE##*.}"
OUTPUT="$DIR/${NAME}_flipped.$EXT"
gimp -i -b "(let* (
(image (car (gimp-file-load RUN-NONINTERACTIVE \"$f\" \"$f\")))
(drawable (car (gimp-image-get-active-layer image)))
)
(gimp-item-transform-flip-simple drawable ORIENTATION-HORIZONTAL TRUE 0)
(gimp-file-save RUN-NONINTERACTIVE image drawable \"$OUTPUT\" \"$OUTPUT\")
(gimp-quit 0)
)"
done
Second:
#!/bin/bash
for f in "$@"; do
DIR="$(dirname "$f")"
FILE="$(basename "$f")"
NAME="${FILE%.*}"
EXT="${FILE##*.}"
OUTPUT="$DIR/${NAME}_flipped.$EXT"
TMP="$(mktemp --suffix=".$EXT")"
# Run GIMP flip
gimp -i -b "(let* (
(image (car (gimp-file-load RUN-NONINTERACTIVE \"$f\" \"$f\")))
(drawable (car (gimp-image-get-active-layer image)))
)
(gimp-item-transform-flip-simple drawable ORIENTATION-HORIZONTAL TRUE 0)
(gimp-file-save RUN-NONINTERACTIVE image drawable \"$TMP\" \"$TMP\")
(gimp-quit 0)
)" >/dev/null 2>&1
# Check result
if [ $? -eq 0 ] && [ -s "$TMP" ]; then
mv "$TMP" "$OUTPUT"
echo "✔ Flipped: $OUTPUT"
else
echo "✖ ERROR flipping $f"
rm -f "$TMP"
fi
done
