Benutzer-Werkzeuge

Webseiten-Werkzeuge


collagenbildererstellensw
collage_grayscaled.desktop
[Desktop Entry]
Type=Service
ServiceTypes=KonqPopupMenu/Plugin,image/jpeg
Actions=Collage_1x2;Collage_1x3;Collage_2x1;Collage_2x2;Collage_2x3;Collage_2x4;Collage_3x1;Collage_3x2;Collage_3x3;Collage_3x4;Collage_3x5;Collage_3x6;Collage_4x3;Collage_4x4;Collage_4x5;Collage_4x6;Collage_5x2;Collage_5x3;Collage_5x4;Collage_5x5;Collage_5x6;Collage_6x2;Collage_6x3;Collage_6x4;Collage_6x5;Collage_8x3
Encoding=UTF-8 
X-KDE-Priority=TopLevel 
X-KDE-Submenu=Bilder-Collagen (S/W) erstellen
 
[Desktop Action Collage_1x2]
Icon=image-jpeg
Name=1x2 Bilder auf Full-HD-Aulösung
Exec=/usr/bin/uxterm -e "/usr/local/scripts/create_collage.sh -g yes -r 1x2 %U"
 
[Desktop Action Collage_1x3]
Icon=image-jpeg
Name=1x3 Bilder auf Full-HD-Aulösung
Exec=/usr/bin/uxterm -e "/usr/local/scripts/create_collage.sh -g yes -r 1x3 %U"
 
[Desktop Action Collage_2x1]
Icon=image-jpeg
Name=2x1 Bilder auf Full-HD-Aulösung
Exec=/usr/bin/uxterm -e "/usr/local/scripts/create_collage.sh -g yes -r 2x1 %U"
 
[Desktop Action Collage_2x2]
Icon=image-jpeg
Name=2x2 Bilder auf Full-HD-Aulösung
Exec=/usr/bin/uxterm -e "/usr/local/scripts/create_collage.sh -g yes -r 2x2 %U"
 
[Desktop Action Collage_2x3]
Icon=image-jpeg
Name=2x3 Bilder auf Full-HD-Aulösung
Exec=/usr/bin/uxterm -e "/usr/local/scripts/create_collage.sh -g yes -r 2x3 %U"
 
[Desktop Action Collage_2x4]
Icon=image-jpeg
Name=2x4 Bilder auf Full-HD-Aulösung
Exec=/usr/bin/uxterm -e "/usr/local/scripts/create_collage.sh -g yes -r 2x4 %U"
 
[Desktop Action Collage_3x1]
Icon=image-jpeg
Name=3x1 Bilder auf Full-HD-Aulösung
Exec=/usr/bin/uxterm -e "/usr/local/scripts/create_collage.sh -g yes -r 3x1 %U"
 
[Desktop Action Collage_3x2]
Icon=image-jpeg
Name=3x2 Bilder auf Full-HD-Aulösung
Exec=/usr/bin/uxterm -e "/usr/local/scripts/create_collage.sh -g yes -r 3x2 %U"
 
[Desktop Action Collage_3x3]
Icon=image-jpeg
Name=3x3 Bilder auf Full-HD-Aulösung
Exec=/usr/bin/uxterm -e "/usr/local/scripts/create_collage.sh -g yes -r 3x3 %U"
 
[Desktop Action Collage_3x4]
Icon=image-jpeg
Name=3x4 Bilder auf Full-HD-Aulösung
Exec=/usr/bin/uxterm -e "/usr/local/scripts/create_collage.sh -g yes -r 3x4 %U"
 
[Desktop Action Collage_3x5]
Icon=image-jpeg
Name=3x5 Bilder auf Full-HD-Aulösung
Exec=/usr/bin/uxterm -e "/usr/local/scripts/create_collage.sh -g yes -r 3x5 %U"
 
[Desktop Action Collage_3x6]
Icon=image-jpeg
Name=3x6 Bilder auf Full-HD-Aulösung
Exec=/usr/bin/uxterm -e "/usr/local/scripts/create_collage.sh -g yes -r 3x6 %U"
 
[Desktop Action Collage_4x3]
Icon=image-jpeg
Name=4x3 Bilder auf Full-HD-Aulösung
Exec=/usr/bin/uxterm -e "/usr/local/scripts/create_collage.sh -g yes -r 4x3 %U"
 
[Desktop Action Collage_4x4]
Icon=image-jpeg
Name=4x4 Bilder auf Full-HD-Aulösung
Exec=/usr/bin/uxterm -e "/usr/local/scripts/create_collage.sh -g yes -r 4x4 %U"
 
[Desktop Action Collage_4x5]
Icon=image-jpeg
Name=4x5 Bilder auf Full-HD-Aulösung
Exec=/usr/bin/uxterm -e "/usr/local/scripts/create_collage.sh -g yes -r 4x5 %U"
 
[Desktop Action Collage_4x6]
Icon=image-jpeg
Name=4x6 Bilder auf Full-HD-Aulösung
Exec=/usr/bin/uxterm -e "/usr/local/scripts/create_collage.sh -g yes -r 4x6 %U"
 
[Desktop Action Collage_5x2]
Icon=image-jpeg
Name=5x2 Bilder auf Full-HD-Aulösung
Exec=/usr/bin/uxterm -e "/usr/local/scripts/create_collage.sh -g yes -r 5x2 %U"
 
[Desktop Action Collage_5x3]
Icon=image-jpeg
Name=5x3 Bilder auf Full-HD-Aulösung
Exec=/usr/bin/uxterm -e "/usr/local/scripts/create_collage.sh -g yes -r 5x3 %U"
 
[Desktop Action Collage_5x4]
Icon=image-jpeg
Name=5x4 Bilder auf Full-HD-Aulösung
Exec=/usr/bin/uxterm -e "/usr/local/scripts/create_collage.sh -g yes -r 5x4 %U"
 
[Desktop Action Collage_5x5]
Icon=image-jpeg
Name=5x5 Bilder auf Full-HD-Aulösung
Exec=/usr/bin/uxterm -e "/usr/local/scripts/create_collage.sh -g yes -r 5x5 %U"
 
[Desktop Action Collage_5x6]
Icon=image-jpeg
Name=5x6 Bilder auf Full-HD-Aulösung
Exec=/usr/bin/uxterm -e "/usr/local/scripts/create_collage.sh -g yes -r 5x6 %U"
 
[Desktop Action Collage_6x2]
Icon=image-jpeg
Name=6x2 Bilder auf Full-HD-Aulösung
Exec=/usr/bin/uxterm -e "/usr/local/scripts/create_collage.sh -g yes -r 6x2 %U"
 
[Desktop Action Collage_6x3]
Icon=image-jpeg
Name=6x3 Bilder auf Full-HD-Aulösung
Exec=/usr/bin/uxterm -e "/usr/local/scripts/create_collage.sh -g yes -r 6x3 %U"
 
[Desktop Action Collage_6x4]
Icon=image-jpeg
Name=6x4 Bilder auf Full-HD-Aulösung
Exec=/usr/bin/uxterm -e "/usr/local/scripts/create_collage.sh -g yes -r 6x4 %U"
 
[Desktop Action Collage_6x5]
Icon=image-jpeg
Name=6x5 Bilder auf Full-HD-Aulösung
Exec=/usr/bin/uxterm -e "/usr/local/scripts/create_collage.sh -g yes -r 6x5 %U"
 
[Desktop Action Collage_8x3]
Icon=image-jpeg
Name=8x3 Bilder auf Full-HD-Aulösung
Exec=/usr/bin/uxterm -e "/usr/local/scripts/create_collage.sh -g yes -r 8x3 %U"
create_collage.sh
#!/bin/bash
#
#
########## Variablendefinitionen ##########
ALL=$@
POSITION=$(expr `expr index "$ALL" "/"` - 1)
FILE_ALL=${ALL:$POSITION}
FILE_COUNTER=$(expr $# - 4)
FILE_MINI="ReSized"
 
########## Funktionsdefinitionen ##########
 
do_print_debug()
{
	echo ""
	echo "--------------- Debugging an ----------------"
	echo ""
	echo "ALL          = "$ALL
	echo "POSITION     = "$POSITION
	echo "FILE_ALL     = "$FILE_ALL
	echo "FILE_COUNTER = "$FILE_COUNTER
	echo "COUNTER      = "$COUNTER
	echo ""
	echo "--------------- Debugging aus ---------------"
	echo ""
}
 
 
do_show_files()
{
	echo " --> Verarbeite $FILE_COUNTER Dateien ..."
	COUNTER=1
	for ROW in $FILE_ALL
		do
		echo "     "$ROW" ($COUNTER)"
		COUNTER=$(( $COUNTER + 1 ))
	done
}
 
 
do_convert_to_grayscale_files()
{
	if [ "$FILE_EDITED" = "GrayScaled" ]
		then
		echo ""
		echo " --> Konvertiere ausgewählte Bilder nach S/W ..."
		convert collage_$GRID.jpg -colorspace Gray collage_"$FILE_EDITED"_$GRID.jpg
		RC=$?
		do_print_rc_message $RC
	elif [ "$FILE_EDITED" = "UnChanged" ]
		then
		echo ""
		echo " --> Ausgewählte Bilder bleiben unverändert ..."
		mv collage_$GRID.jpg collage_"$FILE_EDITED"_$GRID.jpg
		RC=$?
		do_print_rc_message $RC
	fi
}
 
 
do_del_metadata_from_files()
{
	echo ""
	echo " --> Metadaten (EXIF etc.) in den temporären Bilder entfernen ..."
	jhead -de -di -dx -q $FILE_MINI-*.jpg
	RC=$?
	do_print_rc_message $RC
}
 
 
do_resize_files()
{
	echo ""
	echo " --> Größenanpassung der Bilder an das ausgewählte Format ..."
	convert -resize $RESOLUTION $FILE_ALL $FILE_MINI.jpg
	RC=$?
	do_print_rc_message $RC
}
 
 
do_montage_files()
{
	echo ""
	echo " --> Ausgwewählte Bilder zur Collage zusammenstellen ..."
	montage -tile $COLUMN -geometry 100% "$FILE_MINI-*" collage_"$GRID".jpg
	RC=$?
	do_print_rc_message $RC
}
 
 
do_set_montage_param()
{
	if [ "$GRID" = "1x2" ]
		then
		RESOLUTION="1920x600!"
		COLUMN="1"
	elif [ "$GRID" = "1x3" ]
		then
		RESOLUTION="1920x400!"
		COLUMN="1"
	elif [ "$GRID" = "2x1" ]
		then
		RESOLUTION="960x1200!"
		COLUMN="2"
	elif [ "$GRID" = "2x2" ]
		then
		RESOLUTION="960x600!"
		COLUMN="2"
	elif [ "$GRID" = "2x3" ]
		then
		RESOLUTION="960x400!"
		COLUMN="2"
	elif [ "$GRID" = "2x4" ]
		then
		RESOLUTION="960x300!"
		COLUMN="2"
	elif [ "$GRID" = "3x1" ]
		then
		RESOLUTION="640x1200!"
		COLUMN="3"
	elif [ "$GRID" = "3x2" ]
		then
		RESOLUTION="640x600!"
		COLUMN="3"
	elif [ "$GRID" = "3x3" ]
		then
		RESOLUTION="640x400!"
		COLUMN="3"
	elif [ "$GRID" = "3x4" ]
		then
		RESOLUTION="640x300!"
		COLUMN="3"
	elif [ "$GRID" = "3x5" ]
		then
		RESOLUTION="640x240!"
		COLUMN="3"
	elif [ "$GRID" = "3x6" ]
		then
		RESOLUTION="640x200!"
		COLUMN="3"
	elif [ "$GRID" = "4x3" ]
		then
		RESOLUTION="480x400!"
		COLUMN="4"
	elif [ "$GRID" = "4x4" ]
		then
		RESOLUTION="480x300!"
		COLUMN="4"
	elif [ "$GRID" = "4x5" ]
		then
		RESOLUTION="480x240!"
		COLUMN="4"
	elif [ "$GRID" = "4x6" ]
		then
		RESOLUTION="480x200!"
		COLUMN="4"
	elif [ "$GRID" = "5x2" ]
		then
		RESOLUTION="384x600!"
		COLUMN="5"
	elif [ "$GRID" = "5x3" ]
		then
		RESOLUTION="384x400!"
		COLUMN="5"
	elif [ "$GRID" = "5x4" ]
		then
		RESOLUTION="384x300!"
		COLUMN="5"
	elif [ "$GRID" = "5x5" ]
		then
		RESOLUTION="384x240!"
		COLUMN="5"
	elif [ "$GRID" = "5x6" ]
		then
		RESOLUTION="384x200!"
		COLUMN="5"
	elif [ "$GRID" = "6x2" ]
		then
		RESOLUTION="320x600!"
		COLUMN="6"
	elif [ "$GRID" = "6x3" ]
		then
		RESOLUTION="320x400!"
		COLUMN="6"
	elif [ "$GRID" = "6x4" ]
		then
		RESOLUTION="320x300!"
		COLUMN="6"
	elif [ "$GRID" = "6x5" ]
		then
		RESOLUTION="320x240!"
		COLUMN="6"
	elif [ "$GRID" = "8x3" ]
		then
		RESOLUTION="240x400!"
		COLUMN="8"
	else
		echo "Falschen Wert ($GRID) angegeben!"
		exit 2
	fi
}
 
 
do_del_temp_files()
{
	echo ""
	echo " --> Lösche temporäre Dateien ..."
 
	for FILE_DEL in $FILE_MINI-*.jpg
		do
		if [ -e $FILE_DEL ]
			then
			rm $FILE_DEL
			RC=$?
		else
			RC="1"
		fi
	done
	do_print_rc_message $RC
 
	if [ -e collage_$GRID.jpg ]
		then
		rm collage_$GRID.jpg
		RC=$?
		do_print_rc_message $RC
	fi
}
 
 
do_print_rc_message()
{
	if [ $1 -eq 0 ]
		then
		echo "     --> OKAY"
	elif [ $1 -gt 0 ]
		then
		echo "     --> ERROR"
	fi
}
 
 
do_check_marked_files()
{
	ROW=""
	POS_OF_X=$(expr index "$GRID" x)
	ROW=${GRID:POS_OF_X}
	FROM_BEGIN=$(expr $(expr index "$GRID" x) - 1)
	COL=${GRID:0:FROM_BEGIN}
	FILES_CALCULATED=$(($COL * $ROW))
 
	if [ $FILE_COUNTER -lt $FILES_CALCULATED ]
		then
		echo ""
		echo " --> Zu wenige Dateien ($FILE_COUNTER) markiert. Für das Format $GRID werden $FILES_CALCULATED Dateien benötigt"
		RC="1"
		do_print_rc_message $RC
		break
	elif [ $FILE_COUNTER -gt $FILES_CALCULATED ]
		then
		echo ""
		echo " --> Zu viele Dateien ($FILE_COUNTER) markiert. Für das Format $GRID werden $FILES_CALCULATED Dateien benötigt"
		RC="1"
		do_print_rc_message $RC
		break
	elif [ $FILES_CALCULATED -eq $FILE_COUNTER ]
		then
		echo ""
		echo " --> Anzahl der Dateien ($FILE_COUNTER) für das gewählte Format $GRID ist korrekt"
		RC="0"
		do_print_rc_message $RC
	fi
}
 
 
usage()
{
	echo "Syntax: $0 [-h | -g | -r <Spalten_Zeilen>]"
	echo ""
	echo " -h (help):           diese Hilfeseite"
	echo " -g (grayscale):      S/W-Bilder in Collage verwenden"
	echo " -r (raster):         Angabe der verwendeten Bilder in Spalten x Zeilen"
	echo ""
	exit 1
}
 
if [ $# -eq 0 ]; then
	usage
fi
 
########## Hauptprogramm ##########
while getopts hg:r:lf: OPTION
	do
	case $OPTION in
		h)
		usage
		;;
 
		g)
		if [ "$OPTARG" = "yes" ]
			then
			FILE_EDITED="GrayScaled"
		elif [ "$OPTARG" = "no" ]
			then
			FILE_EDITED="UnChanged"
		else
			echo " --> Argument $OPTARG unbekannt"
			break
		fi
		;;
 
		r)
		GRID=$OPTARG
		do_show_files
		do_check_marked_files
		do_set_montage_param		
		do_resize_files
		do_del_metadata_from_files
		do_montage_files
		do_convert_to_grayscale_files
		do_del_temp_files
		;;
 
		\?)
		echo "Falsche Option $OPTION angegeben!"
		;;
	esac
done
shift `expr $OPTIND - 1`
 
echo ""
echo " Fenster schließen mit Taste RETURN"
read ret
exit 0
#EOF
collagenbildererstellensw.txt · Zuletzt geändert: 2020/01/28 18:36 von dwadmin