move move old scripts
This commit is contained in:
1 parent
93b262977b
commit
208fbd96b4
27 files changed
+346
No files matched your search
Executable
+98
@@ -0,0 +1,98 @@
|
||||
#!/bin/bash
|
||||
|
||||
###############################################################################
|
||||
# Script Name: resize-images.sh
|
||||
#
|
||||
# Description:
|
||||
# Resizes JPG/JPEG images and converts them to PNG format.
|
||||
#
|
||||
# When no resize argument is supplied:
|
||||
# - Portrait images are resized to fit within 1080px height (x1080)
|
||||
# - Landscape images are resized to fit within 1920px width (1920)
|
||||
#
|
||||
# When a resize argument is supplied:
|
||||
# - The supplied resize value is used for all images.
|
||||
#
|
||||
# Additional features:
|
||||
# - Creates output directory NEW/ automatically.
|
||||
# - Optionally normalizes filenames by replacing spaces with underscores.
|
||||
# - Adds an optional date prefix to generated filenames.
|
||||
# - Converts JPG/JPEG images to PNG.
|
||||
#
|
||||
# Requirements:
|
||||
# - Bash
|
||||
# - ImageMagick (identify, convert)
|
||||
#
|
||||
# Usage:
|
||||
#
|
||||
# Automatic portrait/landscape sizing:
|
||||
# ./resize-images.sh
|
||||
#
|
||||
# Resize all images to width 2560:
|
||||
# ./resize-images.sh 2560
|
||||
#
|
||||
# Resize all images to height 1440:
|
||||
# ./resize-images.sh x1440
|
||||
#
|
||||
# Output:
|
||||
# NEW/<date>filename.png
|
||||
#
|
||||
###############################################################################
|
||||
|
||||
DATE=$(date +"%d%m%y_")
|
||||
DEFAULT_RESIZE="auto"
|
||||
|
||||
# Use supplied resize value or automatic mode
|
||||
if [[ -n "${1:-}" ]]; then
|
||||
DEFAULT_RESIZE="$1"
|
||||
fi
|
||||
|
||||
# Create output directory
|
||||
mkdir -p NEW
|
||||
|
||||
for file in *.jpg *.jpeg *.JPG *.JPEG; do
|
||||
|
||||
[[ -f "$file" ]] || continue
|
||||
|
||||
# Replace spaces in filenames
|
||||
file_new="$(echo "$file" | tr ' ' '_')"
|
||||
|
||||
if [[ "$file_new" != "$file" ]]; then
|
||||
echo "Rename: $file -> $file_new"
|
||||
mv "$file" "$file_new"
|
||||
fi
|
||||
|
||||
resize_var="$DEFAULT_RESIZE"
|
||||
|
||||
# Automatic resize mode
|
||||
if [[ "$resize_var" == "auto" ]]; then
|
||||
|
||||
dimensions=$(identify -quiet -format "%wx%h" "$file_new" 2>/dev/null)
|
||||
|
||||
width=${dimensions%x*}
|
||||
height=${dimensions#*x}
|
||||
|
||||
if [[ -n "$width" && -n "$height" ]]; then
|
||||
if (( height > width )); then
|
||||
resize_var="x1080"
|
||||
else
|
||||
resize_var="1920"
|
||||
fi
|
||||
else
|
||||
echo "Skipping invalid image: $file_new"
|
||||
continue
|
||||
fi
|
||||
fi
|
||||
|
||||
output="NEW/${DATE}$(basename "${file_new%.*}").png"
|
||||
|
||||
echo "Transform: $file_new -> $output ($resize_var)"
|
||||
|
||||
convert -quiet \
|
||||
"$file_new" \
|
||||
-resize "$resize_var" \
|
||||
"$output"
|
||||
|
||||
done
|
||||
|
||||
echo "Finished."
|
||||
Reference in new issue
Block a user