From 526b92c0f24d7ae6d4e119d7b7948402a5ed6005 Mon Sep 17 00:00:00 2001 From: brutho Date: Mon, 8 Jun 2026 16:14:45 +0200 Subject: [PATCH] Add kontaktbogen.sh --- kontaktbogen.sh | 67 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 67 insertions(+) create mode 100644 kontaktbogen.sh diff --git a/kontaktbogen.sh b/kontaktbogen.sh new file mode 100644 index 0000000..9f5095f --- /dev/null +++ b/kontaktbogen.sh @@ -0,0 +1,67 @@ +#!/bin/bash +# =============================================== +# Kontaktbogen Generator für sehr große Bildmengen +# =============================================== +# Input: previews/*.jpg +# Output: kontaktbogen_pageX.jpg +# Optimiert für A0 300 dpi (9933x14043 px) +# =============================================== + +INPUT_DIR="previews" +OUTPUT_PREFIX="kontaktbogen" +DPI=300 +A0_WIDTH=9933 +A0_HEIGHT=14043 +SPACING=5 # px Abstand zwischen Bildern +LABELS=true # true = Dateinamen anzeigen +MAX_THUMB_HEIGHT=500 # maximale Höhe der Kacheln + +# alle JPGs numerisch sortieren +FILES=($(ls -1v "$INPUT_DIR"/*.jpg)) +NUM_IMAGES=${#FILES[@]} +echo "Gefundene Bilder: $NUM_IMAGES" + +# Max. Bilder pro Seite: Memory-Management +# Empfohlen: max 1000 Bilder pro Montage, bei 13k Bildern -> 13 Seiten +IMAGES_PER_PAGE=1000 +TOTAL_PAGES=$(( (NUM_IMAGES + IMAGES_PER_PAGE -1)/IMAGES_PER_PAGE )) +echo "Bilder pro Seite: $IMAGES_PER_PAGE, Gesamte Seiten: $TOTAL_PAGES" + +# Kontaktbögen erzeugen +for (( page=0; page \ + -geometry +${SPACING}+${SPACING} \ + -background white \ + -pointsize 12 \ + -label %f \ + -tile ${COLS}x${ROWS} \ + "$OUTPUT_FILE" + else + montage "${PAGE_FILES[@]}" \ + -thumbnail ${THUMB_WIDTH}x${THUMB_HEIGHT}\> \ + -geometry +${SPACING}+${SPACING} \ + -background white \ + -tile ${COLS}x${ROWS} \ + "$OUTPUT_FILE" + fi +done + +echo "Fertig! Alle Kontaktbögen erstellt." \ No newline at end of file