2024-01-01 07:42:04 +01:00
# pixelfloot
2024-01-02 03:03:53 +01:00
Origin: https://git.la10cy.net/DeltaLima/pixelfloot
an very simple and dirty pixelflut client to draw images, written in bash.
2024-01-01 07:42:04 +01:00
pixelfloot was built during the 37c3. in its actual state, its just a mess. I hope i will find time to put it in a more usable and readable format.
## examples
2024-01-05 04:50:49 +01:00
- Display image: `./pixelfloot.sh floot images/lucky-cat.jpg`
- set position: `X=1337 Y=420 ./pixelfloot.sh floot images/lucky-cat.jpg`
- image random position: `./pixelfloot.sh floot images/lucky-cat.jpg chaos`
- wider "chaos-radio": `X_MAX=1000 Y_MAX=600 ./pixelfloot.sh floot images/lucky-cat.jpg chaos`
- image shake position: `./pixelfloot.sh floot images/lucky-cat.jpg shake`
- set the position : `X=420 Y=420 ./pixelfloot.sh floot images/lucky-cat.jpg shake`
- image bounce across screen: `./pixelfloot.sh floot images/lucky-cat.jpg bounce`
- can set the "bounce-radius": `X_MAX=1000 Y_MAX=500 ./pixelfloot.sh floot images/lucky-cat.jpg bounce`
- move image with your cursor (needs `xdotool` ): `./pixelfloot.sh floot images/lucky-cat.jpg cursor`
- Use a color as "alpha" (remove background): `ALPHACOLOR=FF00FF ./pixelfloot.sh floot images/cursor.ppm cursor`
- write text: `TEXT="pixelflut makes a lot of fun! :)" ./pixelfloot.sh floot text`
- set the size of the Textbox and the textcolor: `COLOR=FF00FF SIZE=240 TEXT="colors, yeah!" ./pixelfloot.sh floot text`
- you can also use ALPHACOLOR here, or set your: `ALPHACOLOR=000000 TEXT="colors, yeah!" ./pixelfloot.sh floot text`
- define your own background color: `BGCOLOR=0000FF SIZE=240 TEXT="colors, yeah!" ./pixelfloot.sh floot text`
- increase No of concurrent connections: `FLOOTFORKS=8 ./pixelfloot.sh floot images/lucky-cat.jpg`
- specify IP and PORT: `IPFLOOT=127.0.0.1 FLOOTPORT=1337 ./pixelfloot.sh floot images/lucky-cat.jpg`
- for drawing big areas, like 1280x720, use LARGE mode: `LARGE=true ./pixelfloot.sh floot images/xphg.jpg`
2024-01-05 04:37:52 +01:00
- default field size are 64k lines. You can adjust it with LOLFIELDSIZE:
2024-01-05 04:50:49 +01:00
`LOLFIELDSIZE=16000 LARGE=true ./pixelfloot.sh floot images/xphg.jpg`
2024-01-02 03:36:07 +01:00
2024-01-02 03:34:25 +01:00
```shell
2024-01-05 04:50:49 +01:00
$ ./pixelfloot.sh help
./pixelfloot.sh [floot|convertimg] [FILENAME|fill|text] ([MODE])
2024-01-05 01:14:14 +01:00
floot: flooting the target specified with IPFLOOT
convertimg: converts an image to a command list file in /tmp
2024-01-05 04:50:49 +01:00
to use it, start 'USECACHE=true ./pixelfloot.sh floot [FILENAME]', where FILENAME
2024-01-05 01:14:14 +01:00
is the original image file.
2024-01-05 02:28:38 +01:00
FILENAME: path to any picture imagemagick can handle (env X, Y, RESIZE,
BORDERCOLOR, ALPHACOLOR)
2024-01-05 01:14:14 +01:00
fill: create a filled area with (env COLOR, W (width), H (height), X, Y)
2024-01-05 05:57:37 +01:00
text: create a textbox (env TEXT, FONTSIZE, SIZE, COLOR, BGCOLOR, BORDERCOLOR
ALPHACOLOR)
2024-01-05 01:14:14 +01:00
MODE: static (env X and Y for position)
chaos (env X_MAX and Y_MAX for position range)
2024-01-05 05:58:51 +01:00
shake (env X and Y for position)
2024-01-02 03:34:25 +01:00
cursor
2024-01-05 01:14:14 +01:00
bounce (env Y_MAX and X_MAX for max bounce range, BOUNCESTEP for step size)
2024-01-01 07:42:04 +01:00
2024-01-02 03:34:25 +01:00
available env vars to configure:
2024-01-05 01:14:14 +01:00
IPFLOOT(string), FLOOTPORT(int), USECACHE(bool), FLOOTFORKS(int)
SIZE(int), TEXT(string), FONTSIZE(int), BGCOLOR(hex), COLOR(hex)
2024-01-05 02:15:06 +01:00
BORDERCOLOR(hex), X(int), Y(int), X_MAX(int), Y_MAX(int), H(int), W(int)
2024-01-05 03:56:53 +01:00
RESIZE(int), ALPHACOLOR(hex), BOUNCESTEP(int), LARGE(bool)
2024-01-02 03:34:25 +01:00
```
2024-01-02 03:59:09 +01:00
Running on my Ryzen 4700G with [wellenbrecher ](https://github.com/bits0rcerer/wellenbrecher ) 1280x720 and three workers,
i get around 1,5Gbit/s localhost traffic.
![pixelfloot screenshot ](demo/screenshot_pixelfloot.png )
2024-01-03 05:00:51 +01:00
## try it out
you can use my pixelflut server [pixelflut.la10cy.net ](http://pixelflut.la10cy.net ) and watch the board on the homepage, every 5s refreshed or connect by VNC to [pixelflut.la10cy.net:5900 ](vnc://pixelflut.la10cy.net:5900 )