From 090f68cd0e9ce50568612141bb7f42a02529d59d Mon Sep 17 00:00:00 2001 From: Victor Westerlund Date: Mon, 22 Mar 2021 01:00:54 +0100 Subject: [PATCH] dev21w12a --- .gitignore | 7 +++++++ classes/Eyedropper.py | 24 ++++++++++++++++++++++++ classes/Samples.py | 26 ++++++++++++++++++++++++++ classes/__init__.py | 0 create_collage.sh | 4 ++++ input/.placeholder | 0 main.py | 7 +++++++ mem/.placeholder | 0 requirements.txt | 1 + samples/.placeholder | 0 10 files changed, 69 insertions(+) create mode 100644 .gitignore create mode 100644 classes/Eyedropper.py create mode 100644 classes/Samples.py create mode 100644 classes/__init__.py create mode 100644 create_collage.sh create mode 100644 input/.placeholder create mode 100644 main.py create mode 100644 mem/.placeholder create mode 100644 requirements.txt create mode 100644 samples/.placeholder diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..ce6e703 --- /dev/null +++ b/.gitignore @@ -0,0 +1,7 @@ +__pycache__ + +input/* +samples/* +mem/* + +!*/.placeholder \ No newline at end of file diff --git a/classes/Eyedropper.py b/classes/Eyedropper.py new file mode 100644 index 0000000..ae45157 --- /dev/null +++ b/classes/Eyedropper.py @@ -0,0 +1,24 @@ +from PIL import Image + +def compute_average_image_color(img): + width, height = img.size + + r_total = 0 + g_total = 0 + b_total = 0 + + count = 0 + for x in range(0, width): + for y in range(0, height): + r, g, b = img.getpixel((x,y)) + r_total += r + g_total += g + b_total += b + count += 1 + + return (r_total/count, g_total/count, b_total/count) + +img = Image.open('image.png') +#img = img.resize((50,50)) # Small optimization +average_color = compute_average_image_color(img) +print(average_color) \ No newline at end of file diff --git a/classes/Samples.py b/classes/Samples.py new file mode 100644 index 0000000..81c6bed --- /dev/null +++ b/classes/Samples.py @@ -0,0 +1,26 @@ +from pathlib import Path + +class Samples: + def __init__(self,samples_path): + samples_files = Path(samples_path).glob("*.jpg") + self.samples = [x for x in samples_files if x.is_file()] + + self.hash = self.create_hash() + self.memory = f"mem/{self.hash}" + + # Create hash from sample names and path + def create_hash(self): + samples_hash = "" + for i in self.samples: + samples_hash = hash(i) + return samples_hash + + # Test if the current sample set has been saved + def hash_exists(self): + if(Path(self.memory).is_file()): + return True + return False + + # Save hash to memory location on disk + def save_hash(self): + Path(self.memory,"w").touch() \ No newline at end of file diff --git a/classes/__init__.py b/classes/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/create_collage.sh b/create_collage.sh new file mode 100644 index 0000000..134e981 --- /dev/null +++ b/create_collage.sh @@ -0,0 +1,4 @@ +#! /bin/bash +export PYTHONHASHSEED=0 + +python3 main.py \ No newline at end of file diff --git a/input/.placeholder b/input/.placeholder new file mode 100644 index 0000000..e69de29 diff --git a/main.py b/main.py new file mode 100644 index 0000000..64595d2 --- /dev/null +++ b/main.py @@ -0,0 +1,7 @@ +#from classes import Eyedropper +from classes.Samples import Samples + +# Load samples from folder +samples = Samples("samples") + +print(samples.hash) \ No newline at end of file diff --git a/mem/.placeholder b/mem/.placeholder new file mode 100644 index 0000000..e69de29 diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 0000000..5873a22 --- /dev/null +++ b/requirements.txt @@ -0,0 +1 @@ +Pillow \ No newline at end of file diff --git a/samples/.placeholder b/samples/.placeholder new file mode 100644 index 0000000..e69de29