Skip to content

Commit 8e96079

Browse files
committed
Update Script
1 parent 6c98561 commit 8e96079

3 files changed

Lines changed: 122 additions & 0 deletions

File tree

Color_Palette.py

Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
import sys
2+
from PIL import Image
3+
from sklearn.cluster import KMeans
4+
import numpy as np
5+
from matplotlib import pyplot as plt
6+
from matplotlib import colors as mcolors
7+
8+
def extract_colors(image_path, num_colors=4, output_file="color_palette.pdf"):
9+
try:
10+
# Load the image
11+
image = Image.open(image_path)
12+
13+
# Resize and preprocess the image
14+
small_image = image.resize((100, 100)) # Resize to speed up processing
15+
image_data = np.array(small_image)
16+
17+
# Handle different image modes
18+
if len(image_data.shape) == 2: # Grayscale
19+
image_data = np.stack((image_data,) * 3, axis=-1)
20+
elif image_data.shape[2] == 4: # RGBA
21+
image_data = image_data[:, :, :3] # Remove alpha channel
22+
23+
# Flatten the image data to a list of RGB values
24+
pixels = image_data.reshape((-1, 3))
25+
26+
# Use KMeans to find dominant colors
27+
kmeans = KMeans(n_clusters=num_colors, random_state=42)
28+
kmeans.fit(pixels)
29+
dominant_colors = kmeans.cluster_centers_.astype(int)
30+
31+
# Convert RGB to HEX
32+
dominant_colors_hex = [mcolors.rgb2hex(color / 255) for color in dominant_colors]
33+
34+
# Create a visual palette
35+
fig, ax = plt.subplots(figsize=(8, 2))
36+
for i, hex_color in enumerate(dominant_colors_hex):
37+
ax.add_patch(plt.Rectangle((i, 0), 1, 1, color=hex_color))
38+
ax.text(i + 0.5, -0.3, f"Color {i + 1}\n{hex_color}", ha='center', va='center', fontsize=10)
39+
40+
ax.set_xlim(0, len(dominant_colors_hex))
41+
ax.set_ylim(0, 1)
42+
ax.axis('off')
43+
44+
# Save the palette to a PDF file
45+
plt.savefig(output_file, bbox_inches='tight')
46+
plt.close()
47+
48+
print(f"Color palette saved to {output_file}")
49+
except Exception as e:
50+
print(f"An error occurred: {e}")
51+
52+
if __name__ == "__main__":
53+
# Request image path from the user
54+
image_path = input("Please enter the path to the image: ").strip()
55+
extract_colors(image_path)

elenco_cartelle.py

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
import os
2+
3+
def list_folders_in_path():
4+
# Chiede all'utente il percorso
5+
path = input("Inserisci il percorso: ").strip()
6+
7+
# Verifica che il percorso esista e sia una directory
8+
if not os.path.isdir(path):
9+
print(f"Errore: Il percorso '{path}' non è valido o non è una directory.")
10+
return
11+
12+
# Elenca tutte le cartelle di primo livello
13+
folders = [os.path.join(path, folder) for folder in os.listdir(path) if os.path.isdir(os.path.join(path, folder))]
14+
15+
# Percorso del file di output
16+
output_file = os.path.join(path, "cartelle_primo_livello.txt")
17+
18+
try:
19+
# Salva i risultati nel file
20+
with open(output_file, "w") as f:
21+
f.write("Cartelle di primo livello:\n")
22+
for folder in folders:
23+
f.write(f"{folder}\n")
24+
print(f"Risultati salvati in: {output_file}")
25+
except Exception as e:
26+
print(f"Errore durante il salvataggio del file: {e}")
27+
28+
if __name__ == "__main__":
29+
list_folders_in_path()

trash.py

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
import os
2+
import shutil
3+
from tkinter import Tk, filedialog
4+
5+
# Funzione per selezionare la directory
6+
def select_directory():
7+
root = Tk()
8+
root.withdraw() # Nascondi la finestra principale di Tkinter
9+
directory = filedialog.askdirectory(title="Seleziona la cartella")
10+
return directory
11+
12+
# Chiedi all'utente di inserire la parola (o set di caratteri)
13+
search_term = input("Inserisci il set di caratteri che vuoi cercare alla fine dei nomi dei file: ")
14+
15+
# Permetti all'utente di selezionare la directory
16+
directory = select_directory()
17+
18+
if directory:
19+
# Crea la cartella "duplicati" nella stessa directory in cui si trova lo script
20+
duplicati_folder = os.path.join(directory, "duplicati")
21+
os.makedirs(duplicati_folder, exist_ok=True)
22+
23+
# Cerca tutti i file nella directory specificata e nelle sottocartelle
24+
for root, dirs, files in os.walk(directory):
25+
for file_name in files:
26+
# Ottieni il nome del file senza estensione
27+
name_without_ext, ext = os.path.splitext(file_name)
28+
# Controlla se il nome del file (senza estensione) termina con il set di caratteri specificato
29+
if name_without_ext.endswith(search_term):
30+
# Ottieni il percorso completo del file
31+
file_path = os.path.join(root, file_name)
32+
# Sposta il file nella cartella "duplicati"
33+
shutil.move(file_path, duplicati_folder)
34+
print(f"File spostato in 'duplicati': {file_path}")
35+
36+
print("Operazione completata!")
37+
else:
38+
print("Nessuna cartella selezionata.")

0 commit comments

Comments
 (0)