mirror of
https://github.com/ivuorinen/dotfiles.git
synced 2026-02-01 22:47:48 +00:00
70 lines
1.4 KiB
Bash
Executable File
70 lines
1.4 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
# Generate thumbnails using ImageMagick (magick)
|
|
# https://imagemagick.org/script/download.php
|
|
#
|
|
# Defaults to current directory creating thumbnails with 1000x1000
|
|
# dimensions and 200px white borders around the original image.
|
|
#
|
|
# Defaults can be overridden with ENV variables like this:
|
|
# $ THMB_BACKGROUND=black x-thumbgen ~/images/
|
|
#
|
|
# Created by: Ismo Vuorinen <https://github.com/ivuorinen> 2015
|
|
|
|
set -euo pipefail
|
|
|
|
# Default values
|
|
: "${THMB_SOURCE:=${1:-}}"
|
|
: "${THMB_BACKGROUND:=white}"
|
|
: "${THMB_RESIZE:=800x800}"
|
|
: "${THMB_EXTENT:=1000x1000}"
|
|
|
|
# Print usage information
|
|
usage()
|
|
{
|
|
echo "Usage: $0 /full/path/to/image/folder"
|
|
exit 1
|
|
}
|
|
|
|
# Check if ImageMagick is installed
|
|
check_magick_installed()
|
|
{
|
|
if ! command -v magick &> /dev/null; then
|
|
echo "magick not found in PATH, https://imagemagick.org/script/download.php"
|
|
exit 1
|
|
fi
|
|
}
|
|
|
|
# Generate thumbnails
|
|
generate_thumbnails()
|
|
{
|
|
local source=$1
|
|
|
|
magick \
|
|
"${source}/*" \
|
|
-resize "$THMB_RESIZE" \
|
|
-background "$THMB_BACKGROUND" \
|
|
-gravity center \
|
|
-extent "$THMB_EXTENT" \
|
|
-set filename:fname '%t_thumb.%e' +adjoin '%[filename:fname]'
|
|
}
|
|
|
|
# Main function
|
|
main()
|
|
{
|
|
# Validate input
|
|
if [ -z "$THMB_SOURCE" ]; then
|
|
usage
|
|
fi
|
|
|
|
# Check if the source directory is valid
|
|
if [ ! -d "$THMB_SOURCE" ]; then
|
|
echo "Invalid directory: $THMB_SOURCE"
|
|
exit 1
|
|
fi
|
|
|
|
check_magick_installed
|
|
generate_thumbnails "$THMB_SOURCE"
|
|
}
|
|
|
|
main "$@"
|