73 lines
2.2 KiB
Python
73 lines
2.2 KiB
Python
|
|
import os
|
|
import numpy as np
|
|
from PIL import Image
|
|
|
|
# MAPPING
|
|
file_map = {
|
|
"uploaded_image_0_1768981323417.png": "gumb_start.png",
|
|
"uploaded_image_1_1768981323417.png": "merilec_zdravja.png",
|
|
"uploaded_image_2_1768981323417.png": "okvir_zarjavel.png",
|
|
"uploaded_image_3_1768981323417.jpg": "amnezija_maska.png"
|
|
}
|
|
|
|
upload_dir = "/Users/davidkotnik/.gemini/antigravity/brain/998d0b10-1733-4e5b-85ed-249b986ba9b3"
|
|
dest_dir = "/Users/davidkotnik/repos/novafarma/assets/slike/NOVE_SLIKE/UI"
|
|
|
|
if not os.path.exists(dest_dir):
|
|
os.makedirs(dest_dir)
|
|
|
|
def process_image_green(u_name, t_name):
|
|
src = os.path.join(upload_dir, u_name)
|
|
dst = os.path.join(dest_dir, t_name)
|
|
|
|
if not os.path.exists(src):
|
|
print(f"MISSING SOURCE: {src}")
|
|
return
|
|
|
|
try:
|
|
img = Image.open(src).convert("RGBA")
|
|
data = np.array(img)
|
|
|
|
r, g, b = data[:,:,0], data[:,:,1], data[:,:,2]
|
|
|
|
# 1. CLEAN CHECKERBOARD
|
|
is_neutral = (np.abs(r.astype(int) - g.astype(int)) < 15) & \
|
|
(np.abs(r.astype(int) - b.astype(int)) < 15)
|
|
is_grey_range = (r > 160) & (r < 225)
|
|
|
|
# White & Grey & (Green safety)
|
|
remove_mask = (r > 230) & (g > 230) & (b > 230) | \
|
|
(is_neutral & is_grey_range) | \
|
|
(g > 200) & (r < 100) & (b < 100)
|
|
|
|
data[remove_mask, 3] = 0
|
|
|
|
cleaned = Image.fromarray(data)
|
|
|
|
# 2. ADD GREEN BACKGROUND
|
|
green_bg = Image.new("RGBA", cleaned.size, (0, 255, 0, 255))
|
|
green_bg.alpha_composite(cleaned)
|
|
|
|
# Save as RGB (No transparency, just Green Key)
|
|
final = green_bg.convert("RGB")
|
|
|
|
final.save(dst)
|
|
print(f"CREATED: {dst}")
|
|
|
|
# Verify
|
|
if os.path.exists(dst):
|
|
print(f" VERIFIED EXISTS: {os.path.getsize(dst)} bytes")
|
|
else:
|
|
print(f" ERROR: File not found after save!")
|
|
|
|
except Exception as e:
|
|
print(f"EXCEPTION: {e}")
|
|
|
|
print("STARTING RESTORE WITH GREEN BG...")
|
|
for u, t in file_map.items():
|
|
process_image_green(u, t)
|
|
|
|
print("DIRECTORY LISTING:")
|
|
print(os.listdir(dest_dir))
|