Compare commits

...

10 Commits
master ... main

Author SHA1 Message Date
root 006e37c8a0 Fix opacity stuff 2 years ago
Maya Herrscher 0bd2cdf589 Add random igel functionality 2 years ago
Maya Herrscher c5ba05b543 fix errors 2 years ago
Maya Herrscher aa8b8937c0 Add cat says stuff (untested) 2 years ago
Maya Herrscher 8d26043c93 Change cat says 2 years ago
Maya Herrscher 470e49287c Fix trouble with pngs 2 years ago
Maya Herrscher de6736144b Reado parsing with argparse 2 years ago
Maya Herrscher bf04dfb46c Cat now says stuff 2 years ago
Maya Herrscher 17ff41b63e Add gitignore (maybe) 2 years ago
Maya Herrscher 80f871fb20 Add random cat images (untested!!) 2 years ago
  1. 1
      .gitignore
  2. BIN
      __pycache__/cat.cpython-39.pyc
  3. 16
      cat.py
  4. 11
      igel.py
  5. 50
      pixelflut.py

1
.gitignore

@ -0,0 +1 @@
__pycache__

BIN
__pycache__/cat.cpython-39.pyc

Binary file not shown.

16
cat.py

@ -6,13 +6,21 @@ from PIL import Image
import urllib.request import urllib.request
from io import BytesIO from io import BytesIO
def cat(h, w): def cat(w, h):
url = f'https://cataas.com/cat?width={w}&height={h}' url = f'https://cataas.com/cat?width={w}?height={h}?text=cat'
resp = urllib.request.urlopen(url)
im_data = resp.read()
im = Image.open(BytesIO(im_data))
return im
def cat_says(text,w, h):
url = f'https://cataas.com/cat/says/{text}?size=100&width={w}?height={h}?text=cat'
resp = urllib.request.urlopen(url) resp = urllib.request.urlopen(url)
im_data = resp.read() im_data = resp.read()
im = Image.open(BytesIO(im_data)) im = Image.open(BytesIO(im_data))
im.show()
return im return im
if __name__ == "__main__": if __name__ == "__main__":
cat(1920,1080) cat = cat(1920,1080)
cat.show()

11
igel.py

@ -0,0 +1,11 @@
#!/usr/bin/env python3
import string
import numpy as np
def igel():
igel = ["aussagend", "fickend", "friedlich-neu", "liebend", "niedlich", "panisch-neu", "peinlich", "schlafend", "unzufrieden", "wissend"]
name = np.random.choice(igel)
return f'/opt/docker/nextcloud-dockerized/html/data/maya/files/Bilder/=== Freizeit ===/Kunst/Zeichnungen/Igel/{name}.png'
return im

50
pixelflut.py

@ -6,24 +6,31 @@ from itertools import product
import string import string
import numpy as np import numpy as np
from PIL import Image from PIL import Image
from cat import cat from cat import cat, cat_says
from igel import igel
import argparse
# open image to be sent # parser stuff
image = sys.argv[1] parser = argparse.ArgumentParser(
im = Image.open(image) prog='FluffyPixelfluter',
description='used to paint Pixelflut canvas',)
pixels = list(im.getdata()) parser.add_argument('hostname')
width, height = im.size parser.add_argument('port')
pixels = [pixels[i * width:(i + 1) * width] for i in range(0,height)] parser.add_argument('-i','--image')
parser.add_argument('-r','--random', action='store_true')
HOST, PORT = "px.oeinf.de", 1234 parser.add_argument('-c','--cat', action='store_true')
parser.add_argument('-cs','--catsays')
parser.add_argument('-ig','--igel', action='store_true')
parser.add_argument('-wd','--width', default=0)
parser.add_argument('-ht','--height', default=0)
args = parser.parse_args()
HOST, PORT = args.hostname, int(args.port)
# change start point if requested # change start point if requested
starth, startw = 0, 0 starth = int(args.height)
if len(sys.argv) > 2: starth = int(sys.argv[2]) startw = int(args.width)
if len(sys.argv) > 3: startw = int(sys.argv[3])
rnd = False rnd = args.random
if len(sys.argv) > 4: rnd = sys.argv[4] == "rnd"
# Create a socket (SOCK_STREAM means a TCP socket) # Create a socket (SOCK_STREAM means a TCP socket)
# Connect to server and send data # Connect to server and send data
@ -37,6 +44,16 @@ with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as sock:
sizew = int(received.split(" ")[1]) sizew = int(received.split(" ")[1])
sizeh = int(received.split(" ")[2]) sizeh = int(received.split(" ")[2])
# open image to be sent or query a cat image
if args.cat: im = cat(sizew,sizeh)
elif args.catsays: im = cat_says(args.catsays,sizew,sizeh)
elif args.igel: im = Image.open(igel())
elif args.image: im = Image.open(args.image)
pixels = list(im.getdata())
width, height = im.size
pixels = [pixels[i * width:(i + 1) * width] for i in range(0,height)]
# create list of stuff and shuffle if requested # create list of stuff and shuffle if requested
widthlist = list(range(0 + startw,min(int(sizew),(width+startw)))) widthlist = list(range(0 + startw,min(int(sizew),(width+startw))))
heightlist = list(range(0 + starth, min(int(sizeh),(height+starth)))) heightlist = list(range(0 + starth, min(int(sizeh),(height+starth))))
@ -44,7 +61,8 @@ with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as sock:
for w in widthlist: for w in widthlist:
if rnd: np.random.shuffle(heightlist) if rnd: np.random.shuffle(heightlist)
for h in heightlist: for h in heightlist:
color = '#%02x%02x%02x' % pixels[h-starth][w-startw] if pixels[h-starth][w-startw][3] == 0: continue
color = '#%02x%02x%02x' % pixels[h-starth][w-startw][0:3]
to_send = "px {} {} {}\n".format(w,h,color) to_send = "px {} {} {}\n".format(w,h,color)
sock.sendall(bytes(to_send, "utf-8")) sock.sendall(bytes(to_send, "utf-8"))
sock.close() sock.close()

Loading…
Cancel
Save