Compare commits

..
10 Commits
Author SHA1 Message Date
root 006e37c8a0 Fix opacity stuff 2023-10-12 15:57:31 +02:00
Maya Herrscher 0bd2cdf589 Add random igel functionality 2023-10-12 15:52:21 +02:00
Maya Herrscher c5ba05b543 fix errors 2023-10-10 22:20:43 +02:00
Maya Herrscher aa8b8937c0 Add cat says stuff (untested) 2023-10-10 16:36:36 +02:00
Maya Herrscher 8d26043c93 Change cat says 2023-10-10 15:32:31 +02:00
Maya Herrscher 470e49287c Fix trouble with pngs 2023-10-10 15:13:54 +02:00
Maya Herrscher de6736144b Reado parsing with argparse 2023-10-10 14:41:26 +02:00
Maya Herrscher bf04dfb46c Cat now says stuff 2023-10-10 14:37:37 +02:00
Maya Herrscher 17ff41b63e Add gitignore (maybe) 2023-10-10 11:52:07 +02:00
Maya Herrscher 80f871fb20 Add random cat images (untested!!) 2023-10-10 11:32:15 +02:00
5 changed files with 58 additions and 20 deletions

No files matched your search

+1
View File
@@ -0,0 +1 @@
__pycache__
Binary file not shown.
+12 -4
View File
@@ -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()
Executable
+11
View File
@@ -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
+34 -16
View File
@@ -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
@@ -36,6 +43,16 @@ with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as sock:
received = str(sock.recv(1024), "utf-8") received = str(sock.recv(1024), "utf-8")
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))))
@@ -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()