✨ (social-media-framing) Add script
This commit is contained in:
parent
3c2fab8573
commit
120739bff3
2 changed files with 89 additions and 0 deletions
7
social-media-framing/README.org
Normal file
7
social-media-framing/README.org
Normal file
|
@ -0,0 +1,7 @@
|
||||||
|
#+title: Social Media Framing
|
||||||
|
|
||||||
|
A little bash script using [[https://imagemagick.org][ImageMagick]] and [[https://exiftool.org/][exiftool]] for preparing pictures for sharing on social networks. The image given as first argument is used as a source to create the following three variations:
|
||||||
|
|
||||||
|
- No changes, except a maximum resolution of 1920px at the longest edge (suffix =-regular=)
|
||||||
|
- White border to make the image a 1920x1920px square (suffix =-square=)
|
||||||
|
- White border to make the image a 1080x1920px portrait orientation "story" (suffix =-story=)
|
82
social-media-framing/social-media-framing.sh
Executable file
82
social-media-framing/social-media-framing.sh
Executable file
|
@ -0,0 +1,82 @@
|
||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
set -euo pipefail
|
||||||
|
|
||||||
|
INFO="\033[0;30m\033[47m"
|
||||||
|
START="\033[0;30m\033[44m"
|
||||||
|
DONE="\033[0;30m\033[42m"
|
||||||
|
ERROR="\033[0;30m\033[41m"
|
||||||
|
NC="\033[0m"
|
||||||
|
|
||||||
|
log_info() {
|
||||||
|
echo -e "${INFO} INFO ${NC} $1"
|
||||||
|
}
|
||||||
|
|
||||||
|
log_start() {
|
||||||
|
echo -e "${START} START ${NC} $1"
|
||||||
|
}
|
||||||
|
|
||||||
|
log_done() {
|
||||||
|
echo -e "${DONE} DONE ${NC} $1"
|
||||||
|
}
|
||||||
|
|
||||||
|
log_error() {
|
||||||
|
echo -e "${ERROR} ERROR ${NC} $1"
|
||||||
|
}
|
||||||
|
|
||||||
|
log_info "Welcome to the social media framing script."
|
||||||
|
log_info "We're using the power of imagemagick and exiftool"
|
||||||
|
|
||||||
|
set +u
|
||||||
|
if [[ -z "$1" ]]; then
|
||||||
|
log_error "Missing filename argument."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
set -u
|
||||||
|
|
||||||
|
if [[ ! -f "$1" ]]; then
|
||||||
|
log_error "File with filename $1 not found."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
filename="$(basename "$1")"
|
||||||
|
extension="${filename##*.}"
|
||||||
|
path="$(dirname "$1")/${filename%%.*}"
|
||||||
|
|
||||||
|
regular="$path""-regular.""$extension"
|
||||||
|
square="$path""-square.""$extension"
|
||||||
|
story="$path""-story.""$extension"
|
||||||
|
|
||||||
|
if [[ ! -f "$regular" ]]; then
|
||||||
|
log_start "Creating regular framing"
|
||||||
|
magick "$1" -resize "1920x1920>" "$regular"
|
||||||
|
log_start "Fixing EXIF metadata"
|
||||||
|
exiftool -q -tagsFromFile "$1" "$regular"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ ! -f "$square" ]]; then
|
||||||
|
log_start "Creating square framing"
|
||||||
|
magick -define jpeg:size=1920x1920 "$1" \
|
||||||
|
-thumbnail '1890x1890' \
|
||||||
|
-gravity center \
|
||||||
|
-crop 1920x1920+0+0\! \
|
||||||
|
-flatten \
|
||||||
|
"$square"
|
||||||
|
log_start "Fixing EXIF metadata"
|
||||||
|
exiftool -q -tagsFromFile "$1" "$square"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ ! -f "$story" ]]; then
|
||||||
|
log_start "Creating story framing"
|
||||||
|
magick -define jpeg:size=1080x1920 "$1" \
|
||||||
|
-thumbnail '1050x1890' \
|
||||||
|
-gravity center \
|
||||||
|
-crop 1080x1920+0+0\! \
|
||||||
|
-flatten \
|
||||||
|
"$story"
|
||||||
|
log_start "Fixing EXIF metadata"
|
||||||
|
exiftool -q -tagsFromFile "$1" "$story"
|
||||||
|
fi
|
||||||
|
|
||||||
|
exiftool -q -delete_original! "$(dirname "$1")"
|
||||||
|
log_done "Finished creating framed images"
|
Loading…
Reference in a new issue