Benutzer:Thomas/Bilder raten

Aus dem SpieleWiki
Wechseln zu: Navigation, Suche

Kurzbeschreibung[Bearbeiten]

 Bilder werden langsam aufgedeckt oder entzerrt und müssen erraten werden

Vorbereitungsaufwand: Hoch (> 1 Stunde)

Gruppengrößen[Bearbeiten]

Mindestens 1 Leiter. Für beliebig viele Teilnehmer.

Inhalt[Bearbeiten]

TODO: Beschreibung vervollständigen

Erzeugen der Bilder[Bearbeiten]

Low-Tech[Bearbeiten]

Bilder mit Diaprojektor oder Beamer an die Wand werfen, langsam den Zoom richtig einstellen (dadurch sind die Bilder erst sehr verschwommen)

Linux-Kommandozeile[Bearbeiten]

Black Boxes[Bearbeiten]

black-boxes.sh:

#!/bin/bash
shopt -s nullglob

# Erzeugt aus einer Liste von Bildern ein Blockraetsel pro Bild
# Benoetigt Perl und ImageMagick
# Autor: Thomas Bleher <ThomasBleher@gmx.de>

# Name des Ausgabeverzeichnis
OUT_DIR=raetsel-block
# Maximale Bildgroesse (in Pixel fuer Breite bzw. Hoehe)
TARGET_SIZE=1024
# JPG-Bildqualitaet
TARGET_QUALITY=75
# Maximale Punktzahl die man bekommen kann
# die Punktzahl im Bild kann man auch deaktivieren (dazu unten nach POINTS suchen)
MAX_POINTS=6
# Verzeichnis mit den Mustern, die ueber das Bild gelegt werden
PATTERN_DIR=pattern
# Schriftgroesse
FONT_SIZE=30

# Verzeichnisstruktur vorher:
# pattern/
# pattern/003.png
# pattern/006.png
# ...
# input/kategorie1/bilda.jpg
# input/kategorie1/bildb.jpg
# input/kategorie2/bildc.jpg
#
# Aufruf dieses Programms in Verzeichnis input/
# (Verzeichnis darf auch anders heissen, aber parallel dazu muss
# das Verzeichnis pattern liegen, und es muss eine Unterverzeichnis-
# Ebene geben (die Kategorien)
#
# Danach:
# pattern/
# pattern/003.png
# pattern/006.png
# pattern/009.png
# ...
# input/kategorie1/bilda.jpg
# input/kategorie1/bildb.jpg
# input/kategorie2/bildc.jpg
# ...
# raetsel-block/kategorie1/1/bilda_003.jpg
# raetsel-block/kategorie1/1/bilda_006.jpg
# raetsel-block/kategorie1/1/bilda_009.jpg
# raetsel-block/kategorie1/2/bildb_003.jpg
# raetsel-block/kategorie1/2/bildb_006.jpg
# raetsel-block/kategorie1/2/bildb_009.jpg
# raetsel-block/kategorie2/1/bildc_003.jpg
# raetsel-block/kategorie2/1/bildc_006.jpg
# raetsel-block/kategorie2/1/bildc_009.jpg

# Die Anzahl der entstehenden Bilder pro Ursprungsbild wird durch die
# Anzahl der Bilder in pattern/ festgelegt.

mkdir -p "../$OUT_DIR"
echo -n > "../$OUT_DIR/list.txt"
for dir in *
do
	if [ -d "$dir" ]
	then
		mkdir -p "../$OUT_DIR/$dir"
		IMG_NR=0
		for j in "$dir"/*.jpg "$dir"/*.JPG
		do
			echo "Processing $j..."
			IMG_NR=$(( $IMG_NR + 1))
			mkdir -p "../$OUT_DIR/$dir/$IMG_NR"
			PRAEFIX="`echo "$j" | perl -pe 's,.*/,,;s/\..*?$//'`"
			echo -ne "$dir: $IMG_NR=$PRAEFIX\r\n" >> "../$OUT_DIR/list.txt"
			convert "$j" -resize ${TARGET_SIZE}x${TARGET_SIZE}\> tmp_img.jpg
			SIZE=`identify tmp_img.jpg | cut -d\  -f3`\!
			NR_ITERATIONS=`ls ../pattern/*.png | wc -l`
			NR=0
			for i in "../$PATTERN_DIR/"*.png
			do	
				POINTS=`perl -e "print int((($NR_ITERATIONS - $NR - 2) * $MAX_POINTS / $NR_ITERATIONS) + 1);"`
				OUT="../$OUT_DIR/$dir/$IMG_NR/${PRAEFIX}_`basename $i .png`.jpg"
				if [ ! -e "$OUT" ]
				then
					convert "$i" -scale "$SIZE" -transparent "#ffffff" tmp_pat.png
					composite tmp_pat.png tmp_img.jpg tmp_img_out.jpg
					# um keine Punkte anzuzeigen, naechste Zeile auskommentieren
					# POINTS=""
					convert tmp_img_out.jpg -pointsize $FONT_SIZE \
                                            -draw "gravity SouthEast fill black text 10,12 '$POINTS' fill white  text 12,10 '$POINTS'" \
                                            -quality $TARGET_QUALITY "$OUT"
				fi
				NR=$(($NR + 1))
			done
		done
	fi
done

Zusatzskript zum Erzeugen der Muster:

#!/usr/bin/perl
use warnings;
use GD;
use List::Util 'shuffle';

# ein kleines Programm, um kleine PNG-Dateien mit Mustern zu erzeugen, die
# fuer ein Block-Raetsel ueber die Bilder gelegt werden koennen.
# Man kann aber auch die schon vorhandenen Muster unter pattern benutzen
#
# Autor: Thomas Bleher <ThomasBleher@gmx.de>

# Benoetigt unter Debian/Ubuntu libgd-gd2-perl oder libgd-gd2-noxpm-perl

# Anzahl Pixel waagrecht
my $width = 12;
# Anzahl Pixel senkrecht
my $height = 9;
# wie viele Pixel werden pro Schritt aufgedeckt
my $step = 3;

# create a new image
$im = new GD::Image($width, $height);

# allocate some colors
$white = $im->colorAllocate(255,255,255);
$black = $im->colorAllocate(0,0,0);       

# make the background transparent and interlaced
$im->transparent($white);
$im->fill(0,0,$black);

my $count = 0;
for my $pixel (shuffle(0..$height*$width-1)) {
	my $x = $pixel % $width;
	my $y = int($pixel / $width);
	$im->setPixel($x, $y, $white);
	$count++;
	if( $count % $step == 0 ) {
		open PNG, ">", sprintf("%03d.png", $count);
		print PNG $im->png;
		close PNG;
	}
}

Ergebnis:
Bilderraetsel-animiert-block.gif

Swirl[Bearbeiten]

#!/bin/bash
shopt -s nullglob

# Erzeugt aus einer Liste von Bildern ein Verdrehraetsel pro Bild
# Benoetigt Perl und ImageMagick
# Autor: Thomas Bleher <ThomasBleher@gmx.de>

# Name des Ausgabeverzeichnis
OUT_DIR=raetsel-swirl
# Maximale Bildgroesse (in Pixel fuer Breite bzw. Hoehe)
TARGET_SIZE=1024
# JPG-Bildqualitaet
TARGET_QUALITY=75
# Maximale Punktzahl die man bekommen kann
# die Punktzahl im Bild kann man auch deaktivieren (dazu unten nach POINTS suchen)
MAX_POINTS=8
# Schriftgroesse
FONT_SIZE=30
# Maximaler Verdrehwinkel
MAX=720
# Verdrehwinkel in Grad pro Schritt
STEP=-20
# Wichtig: MAX muss durch STEP ohne Rest teilbar sein!

NR_ITERATIONS=`seq $MAX $STEP 0 | wc -l`

mkdir -p "../$OUT_DIR"
echo -n > "../$OUT_DIR/list.txt"
for dir in *
do
	if [ -d "$dir" ]
	then
		mkdir -p "../$OUT_DIR/$dir"
		IMG_NR=0
		for j in "$dir"/*.jpg "$dir"/*.JPG
		do
			echo "Processing $j..."
			IMG_NR=$(( $IMG_NR + 1))
			mkdir -p "../$OUT_DIR/$dir/$IMG_NR"
			PRAEFIX="`echo "$j" | perl -pe 's,.*/,,;s/\..*?$//'`"
			echo "$dir: $IMG_NR=$PRAEFIX" >> "../$OUT_DIR/list.txt"
			convert "$j" -resize ${TARGET_SIZE}x${TARGET_SIZE}\> tmp_img.jpg
			NR=0
			for i in `seq $MAX $STEP 0`
			do
				POINTS=`perl -e "print int((($NR_ITERATIONS - $NR - 2) * $MAX_POINTS / $NR_ITERATIONS) + 1);"`
				SUFFIX=`perl -e "printf '%04d', abs($MAX - $i);"`
				# implode max 0.5
				#IMPLODE=`echo "$i / ($MAX) / 2" | bc -l`
				BORDER=`perl -e "print int($i * $TARGET_SIZE / ($MAX * 5));"`
				OUT="../$OUT_DIR/$dir/$IMG_NR/${PRAEFIX}_$SUFFIX.jpg"
				if [ ! -e "$OUT" ]
				then
					# um keine Punkte anzuzeigen, naechste Zeile auskommentieren
					# POINTS=""
					convert tmp_img.jpg -bordercolor white -border ${BORDER}x${BORDER} \
                                            -swirl $i -shave ${BORDER}x${BORDER} -pointsize $FONT_SIZE \
                                            -draw "gravity SouthEast fill black text 10,12 '$POINTS' fill white  text 12,10 '$POINTS'" \
                                            -quality $TARGET_QUALITY "$OUT"
				fi
				NR=$(($NR + 1))
			done
		done
	fi
done

Ergebnis:
Bilderraetsel-animiert-swirl.gif


Autor
Thomas Bleher

Kommentare[Bearbeiten]

Вау, великолепно сайт. Спасибо...
Посетите также мою страничку
web directory ru сервисы социальных закладок web directory ru
-- Ernestine 22:44, 13. Sep. 2023 (CEST)

Вы действительно практичный веб-сайт; не мог сделать это без тебя!
Посетите также мою страничку Social bookmarking sites web directory web directory list
-- Sheri 15:03, 16. Sep. 2023 (CEST)

Я ценю просматриваю ваш интернет-сайт.
Большое спасибо! Посетите также мою страничку технология
заливки отмостки строительство подготовка поверхности
-- Hattie 12:10, 17. Sep. 2023 (CEST)

Kommentar hinzufügen...

Du hast einen Kommentar zu diesem Spiel/dieser Seite? Trag ihn hier ein oder bearbeite die Seite direkt. Verbesserungsvorschläge und Hinweise auf Fehler sind auch herzlich willkommen!


Name: (Tipp: Wenn du dich anmeldest, musst du hier nicht mehr deinen Namen angeben)