From 86769c9aaa65fb95f2713db590e9d3ae1dbea68b Mon Sep 17 00:00:00 2001 From: justine Date: Sat, 22 Jun 2024 17:21:04 +0200 Subject: [PATCH] first --- .gitignore | 1 + README.md | 14 ++++++++++++ requirements.txt | 1 + sizer.py | 58 ++++++++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 74 insertions(+) create mode 100644 .gitignore create mode 100644 README.md create mode 100644 requirements.txt create mode 100755 sizer.py diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..fc6a14f --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +myvenv diff --git a/README.md b/README.md new file mode 100644 index 0000000..da2a58e --- /dev/null +++ b/README.md @@ -0,0 +1,14 @@ +# Sizer + +A script for sorting pictures (namely, wallpapers) by size. + +It looks for a folder named "wallpapers" in its directory. It then moves all pictures into folders it creates, depending on their size. All pictures that do not fit either a predefined format go in the "SD" folder. + +# Formats +## 16:9 +* hd (1920 x 1080) +* 2k (2560 x 1440) +* 4k (4096 x 2160) + +# 21:9 +* 2k (3440 x 1440) diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 0000000..0dd006b --- /dev/null +++ b/requirements.txt @@ -0,0 +1 @@ +opencv-python diff --git a/sizer.py b/sizer.py new file mode 100755 index 0000000..d599afe --- /dev/null +++ b/sizer.py @@ -0,0 +1,58 @@ +#!/usr/bin/env python3 +#coding: utf-8 +import cv2 +import os +from os.path import join + +def pic_size_find(pic_path: str): + img = cv2.imread(pic_path,0) + h, w = img.shape[:2] + return(w, h) + +def pics_list(path:os.path): + files = [f for f in os.listdir(path) if (f.endswith(".jpg") or f.endswith(".jpeg") or f.endswith(".png"))] + + return files + +def file_move(file, dest): + os.rename(file, dest) + + +def main(): + folder4k = "wallpapers4k" + folder2k = "wallpapers2k" + folderhd = "wallpapershd" + foldersd = "wallpaperssd" + + res4k = (4096, 2160) + res2k = (2560, 1440) + reshd = (1920, 1080) + + for folder in [folder4k, folder2k, folderhd, foldersd]: + os.makedirs(join(".", folder), exist_ok=True) + + + files = pics_list("./wallpapers") + for f in files: + f_path = join("wallpapers", f) + size = pic_size_find(f_path) + print(f"{f} => {size}") + if size == res4k: + file_move(f_path, join(folder4k, f)) + dest_folder = folder4k + elif size == res2k: + file_move(f_path, join(folder2k, f)) + dest_folder = folder2k + elif size == reshd: + file_move(f_path, join(folderhd, f)) + dest_folder = folderhd + else: + file_move(f_path, join(foldersd, f)) + dest_folder = foldersd + print(f"{f} moved to {dest_folder}") + + + +if __name__ == "__main__": + main() +