calendar-image/script.sh
2025-03-18 17:46:11 +01:00

99 lines
3.8 KiB
Bash

#!/bin/bash
TEXTTITLE=$(printf "(Un)Repair Cafe")
TEXTSUBTITLE="Every 2nd and 4th thursday"
TEXTDATE=$(printf "27/03\n17:30-22:00")
TEXTLOCATION=$(printf "CATU")
TEXTADDRESS=$(printf "Catullusweg 11\nRotterdam")
TEXTLOCATIONLONG=$(printf "CATU\nCatullusweg 11\nRotterdam")
DESCRIPTION=$(printf "Do you dig trough trash only to\n find treasure? Are you interested in \nbuilding servers? Do you take the shop\n out of photoshop? Is a printer jam your \n kind of jam? \n Come hang at the (un)repair cafe!")
QRDESCRIPTION=$(printf "*Check out calendar.klank.school \n for more details!")
# Create the image with text overlays landscape
convert assets/landscape_2.jpg \
-gamma 1 +level 0,1000 -white-threshold 999 \
-font Courier \
-wave -20x4 \
-weight 900 \
-fill white \
\( -pointsize 200 -draw "rotate -19 gravity northwest text -150,1200 '$TEXTTITLE'" \) \
\( -pointsize 100 -draw "rotate -19 gravity northwest text -220, 1820 '$TEXTSUBTITLE'" \) \
\( -pointsize 100 -draw "gravity southeast text 400,950 '$TEXTDATE'" \) \
\( -pointsize 100 -draw "gravity southeast text 400,400 '$TEXTLOCATIONLONG'" \) \
-wave -2x0 \
output_landscape.jpg
# create a portrait poster
convert assets/poster_6.jpg \
-gamma 1 +level 0,2200 \
-morphology Distance Euclidean:4,180 -auto-level \
-font Courier \
-wave -20x4 \
-weight 900 \
-fill white \
\( -pointsize 120 -draw "rotate 7 gravity northwest text 250,200 '$TEXTTITLE'" \) \
-fill white \
\( -pointsize 70 -draw "rotate 6 gravity northwest text 250,380 '$TEXTSUBTITLE'" \) \
-fill white \
\( -pointsize 48 -interline-spacing 5 -draw "rotate 6 gravity northwest text 320,580 '$TEXTLOCATIONLONG'" \) \
wave -2x0 \
\( -pointsize 40 -interline-spacing 20 -draw "rotate 1 gravity southwest text 300,360 '$DESCRIPTION'" \) \
output_poster.jpg
# Create an A6 poster
convert assets/poster_1.jpg \
-resize "1240x1748" \
-gamma 0.3 +level 10,1000 \
-morphology Distance Euclidean:4,80 -auto-level \
-font Courier -weight Bold \
-wave -10x4 \
-fill white \
\( -pointsize 80 -draw "rotate 7 gravity northwest text 150,150 '$TEXTTITLE'" \) \
-fill white \
\( -pointsize 50 -draw "rotate 7 gravity northwest text 160,250 '$TEXTSUBTITLE'" \) \
-fill white \
\( -pointsize 30 -interline-spacing 5 -draw "rotate 6 gravity northwest text 240,450 '$TEXTLOCATIONLONG'" \) \
wave -2x0 \
\( -pointsize 30 -interline-spacing 10 -draw "rotate 1 gravity southwest text 200,300 '$DESCRIPTION'" \) \
output_A6.jpg
convert calendar.jpg -background none -rotate 10 -resize "50%" tmp_calendar.png
# Put a QR code on an A6 poster
convert output_A6.jpg \
-fill tomato \
-draw "rotate 10 rectangle 840,690 1120,970" \
temp_overlay.png \
-gravity center \
-geometry +200+100 \
-font Courier -weight Bold \
-pointsize 24 -interline-spacing 10 -draw "rotate 10 gravity center text 200,-120 '$QRDESCRIPTION'" \
-composite output_A6_qr.jpg
rm tmp_calendar.png
# Create a rectangle image
convert assets/rectangle_1.jpg \
-resize "1240x1240" \
-gamma .5 +level 100,1000 \
-morphology Convolve \
"3x3: -2 -1 0 -1 1 1 0 1 0" \
-morphology Convolve \
"3x3: -2 -1 0 -1 1 1 0 1 0" \
-morphology Distance Euclidean:1,80 -auto-level \
-font Courier -weight Bold \
-gamma 0.05 \
-wave -10x5 \
-fill white \
\( -pointsize 120 -draw "rotate -18 gravity center text 30,-200 '$TEXTTITLE'" \) \
-fill white \
\( -pointsize 50 -draw "rotate -18 gravity center text -100,0 '$TEXTSUBTITLE'" \) \
-fill white \
\( -pointsize 45 -interline-spacing 5 -draw "rotate -2 gravity southeast text 60, 150 '$TEXTADDRESS'" \) \
\( -pointsize 80 -interline-spacing 5 -draw "rotate -2 gravity southeast text 100,380 '$TEXTLOCATION'" \) \
-wave 1x40 \
-auto-level \
-morphology Convolve \
"3x3: -2 -1 0 -1 1 1 0 1 0" \
rectangle_1.jpg