Sizer/sizer.py
justine d0b512080e Update sizer.py
Now handle portrait mode
2024-06-22 18:00:43 +02:00

100 lines
2.7 KiB
Python
Executable File

#!/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():
#For landscape
folder4k = "Wallpapers_4K"
folder2k = "Wallpapers_2k"
folderhd = "Wallpapers_hd"
foldersd = "Wallpapers_sd"
folderuw = "UltrawideWallpapers"
#For portrait
vert4k = "Vertical_4k"
vert2k = "Vertical_2k"
verthd = "Vertical_hd"
vertuw = "Vertical_ultrawide"
res4k = (4096, 2160)
reslow4k = (3840, 2160)
res2k = (2560, 1440)
reshd = (1920, 1080)
resuw = (3440, 1440)
#VARS
orig_folder = "VerticalWallpapers"
print("Size begins !")
for folder in [folder4k, folder2k, folderhd, foldersd, folderuw, vert2k, vert4k, verthd, vertuw]:
os.makedirs(join(".", folder), exist_ok=True)
print(f"Folder {folder} created if needed")
files = pics_list(orig_folder)
print(f"About to run on {len(files)} pictures...")
cont = input("Press enter to start, Ctrl+C to cancel")
for f in files:
f_path = join(orig_folder, f)
size = pic_size_find(f_path)
rsize = size[::-1]
print(f"{f} => {size}")
#Check landscape first
if size == res4k or size == reslow4k:
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
elif size == resuw:
file_move(f_path, join(folderuw, f))
dest_folder = folderuw
#Check portrait by inverting sizes
elif rsize == res4k or rsize == reslow4k:
file_move(f_path, join(vert4k, f))
dest_folder = vert4k
elif rsize == res2k[::-1]:
file_move(f_path, join(vert2k, f))
dest_folder = vert2k
elif rsize == reshd[::-1]:
file_move(f_path, join(verthd, f))
dest_folder = verthd
elif rsize == resuw[::-1]:
file_move(f_path, join(vertuw, f))
dest_folder = vertuw
#...Or put in "SD" folder
else:
file_move(f_path, join(foldersd, f))
dest_folder = foldersd
print(f"{f} moved to {dest_folder}")
print("Done, Sayonara")
if __name__ == "__main__":
main()