From 7332285c9304f71ceae8e6e20ffe54a28b6b6c56 Mon Sep 17 00:00:00 2001 From: Marcus Date: Wed, 3 Jan 2024 21:48:02 +0100 Subject: [PATCH] add text feature, but very q&n - bad code quality - i clean up later, promise! --- README.md | 8 +++++++- pixelfloot_bash.sh | 41 +++++++++++++++++++++++++++++++++++++++-- 2 files changed, 46 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 52071d0..6a14a60 100644 --- a/README.md +++ b/README.md @@ -15,12 +15,16 @@ pixelfloot was built during the 37c3. in its actual state, its just a mess. I ho - set the position : `W=420 H=420 ./pixelfloot_bash.sh floot images/lucky-cat.jpg shake` - move image with your cursor (needs `xdotool`): `./pixelfloot_bash.sh floot images/lucky-cat.jpg cursor` - Use a color as "alpha" (remove background): `ALPHACOLOR=FF00FF ./pixelfloot_bash.sh floot images/cursor.ppm cursor` +- write text: `TEXT="pixelflut makes a lot of fun! :)" ./pixelfloot_bash.sh floot text` + - set the size of the Textbox and the textcolor: `COLOR=FF00FF SIZE=240 TEXT="colors, yeah!" ./pixelfloot_bash.sh floot text` + - you can also use ALPHACOLOR here, or set your: `ALPHACOLOR=000000 TEXT="colors, yeah!" ./pixelfloot_bash.sh floot text` + - define your own background color: `BGCOLOR=0000FF SIZE=240 TEXT="colors, yeah!" ./pixelfloot_bash.sh floot text` - increase No of concurrent connections: `FLOOTFORKS=8 ./pixelfloot_bash.sh floot images/lucky-cat.jpg` - specify IP and PORT: `IPFLOOT=127.0.0.1 FLOOTPORT=1337 ./pixelfloot_bash.sh floot images/lucky-cat.jpg` ```shell $ ./pixelfloot_bash.sh help -./pixelfloot_bash.sh [floot|convertimg] [FILENAME|fill] ([MODE]) +./pixelfloot_bash.sh [floot|convertimg] [FILENAME|fill|text] ([MODE]) MODE: static (env $H and $W for position) chaos (env $H and $W for position range) shake (env $H and $W for position range) @@ -28,7 +32,9 @@ MODE: static (env $H and $W for position) available env vars to configure: RESIZE(int), ALPHACOLOR(hex), FLOOTFORKS(int), H(int), W(int) +SIZE(int), TEXT(string), TEXTSIZE(int), BGCOLOR(hex), COLOR(hex) IPFLOOT(string), FLOOTPORT(string), USECACHE(bool) + ``` Running on my Ryzen 4700G with [wellenbrecher](https://github.com/bits0rcerer/wellenbrecher) 1280x720 and three workers, diff --git a/pixelfloot_bash.sh b/pixelfloot_bash.sh index ed5bbcf..a844dff 100755 --- a/pixelfloot_bash.sh +++ b/pixelfloot_bash.sh @@ -216,6 +216,10 @@ convertimg() { done < <(convert $IMGFILE $RESIZE txt: | tail -n +2 | awk '{print $1 $3}' | sed -e 's/\,/ /' -e 's/\:/ /' -e 's/\#//') } +#~ generate_text() { + +#~ } + sx=0 sy=0 shuf_xy() { @@ -296,7 +300,39 @@ floot() { do LOL[$i]="$LOL_org" done - else + elif [ "$FNAME" == "text" ] + then + test -z "$TEXT" && TEXT="pixelfloot" + test -z "$TEXTSIZE" && TEXTSIZE=42 + test -z "$COLOR" && COLOR="000000" + test -z "$BGCOLOR" && BGCOLOR="FFFFFF" + + if [ -n "$SIZE" ] + then + SIZE="-size $SIZE" + + fi + #set -x + #convert -fill lightgreen -background white -pointsize 40 caption:"KARTTUR" -quality 72 DstImage.png + message "generating text, size $TEXTSIZE for ${YELLOW}$FLOOTFORKS${ENDCOLOR} workers" + LOL_org="$(convert ${SIZE} +antialias -depth 8 -fill \#${COLOR} -background \#${BGCOLOR} -pointsize ${TEXTSIZE} caption:"${TEXT}" -quality 72 txt: | tail -n +2 | awk '{print $1 $3}' | sed -e 's/\,/ /' -e 's/\:/ /' -e 's/\#//' -e 's/^/PX /')" + #echo "$LOL_org" + #read + for i in $(seq 1 $FLOOTFORKS) + do + #LOL[$i]="$(echo "$LOL_org" | shuf )" + if [ -z "$ALPHACOLOR" ] + then + LOL[$i]="$(echo "$LOL_org" | shuf)" + #LOL[$i]="$(convertimg | shuf)" + else + LOL[$i]="$(echo "$LOL_org" | grep -v $ALPHACOLOR | shuf)" + #LOL[$i]="$(convertimg | grep -v $ALPHACOLOR | shuf)" + fi + done + + + else # generate a tmp file, as i have trouble atm to figure out # why free space get lost when i generate the pixlist directly # in ram @@ -391,7 +427,7 @@ case $1 in floot ;; *) - echo "$0 [floot|convertimg] [FILENAME|fill] ([MODE])" + echo "$0 [floot|convertimg] [FILENAME|fill|text] ([MODE])" echo "MODE: static (env \$H and \$W for position)" echo " chaos (env \$H and \$W for position range)" echo " shake (env \$H and \$W for position range)" @@ -399,6 +435,7 @@ case $1 in echo "" echo "available env vars to configure:" echo "RESIZE(int), ALPHACOLOR(hex), FLOOTFORKS(int), H(int), W(int)" + echo "SIZE(int), TEXT(string), TEXTSIZE(int), BGCOLOR(hex), COLOR(hex)" echo "IPFLOOT(string), FLOOTPORT(string), USECACHE(bool)" exit 1 ;;