90 lines
2.8 KiB
Python
90 lines
2.8 KiB
Python
#!/usr/bin/env python3
|
|
"""
|
|
Démonstration de la nouvelle méthode create_gradient de PixelPalette
|
|
"""
|
|
|
|
import sys
|
|
import os
|
|
sys.path.insert(0, os.path.dirname(__file__))
|
|
|
|
from lib.pixel_palette import PixelPalette
|
|
|
|
def demo_rgb_gradient():
|
|
"""Démontre un dégradé RGB"""
|
|
print("=== Dégradé RGB ===")
|
|
|
|
# Créer une palette avec 5 couleurs
|
|
palette = PixelPalette()
|
|
palette.add_color(255, 0, 0, "Rouge") # index 0
|
|
palette.add_color(128, 128, 128, "Gris1") # index 1 - à modifier
|
|
palette.add_color(128, 128, 128, "Gris2") # index 2 - à modifier
|
|
palette.add_color(128, 128, 128, "Gris3") # index 3 - à modifier
|
|
palette.add_color(0, 255, 0, "Vert") # index 4
|
|
|
|
print("Avant dégradé:")
|
|
for i, color in enumerate(palette.colors):
|
|
print(f" {i}: {color}")
|
|
|
|
# Créer un dégradé entre index 0 et 4
|
|
palette.create_gradient(0, 4, "rgb")
|
|
|
|
print("\nAprès dégradé RGB:")
|
|
for i, color in enumerate(palette.colors):
|
|
print(f" {i}: {color}")
|
|
|
|
def demo_hsv_gradient():
|
|
"""Démontre un dégradé HSV"""
|
|
print("\n=== Dégradé HSV ===")
|
|
|
|
# Créer une palette avec des couleurs pour HSV
|
|
palette = PixelPalette()
|
|
palette.add_color(255, 0, 0, "Rouge") # index 0 - Hue: 0°
|
|
palette.add_color(128, 128, 128, "Gris1") # index 1 - à modifier
|
|
palette.add_color(128, 128, 128, "Gris2") # index 2 - à modifier
|
|
palette.add_color(0, 255, 0, "Vert") # index 3 - Hue: 120°
|
|
|
|
print("Avant dégradé:")
|
|
for i, color in enumerate(palette.colors):
|
|
print(f" {i}: {color}")
|
|
|
|
# Créer un dégradé HSV
|
|
palette.create_gradient(0, 3, "hsv")
|
|
|
|
print("\nAprès dégradé HSV:")
|
|
for i, color in enumerate(palette.colors):
|
|
print(f" {i}: {color}")
|
|
|
|
def demo_error_cases():
|
|
"""Démontre les cas d'erreur"""
|
|
print("\n=== Cas d'erreur ===")
|
|
|
|
# Cas 1: Pas assez de couleurs entre les index
|
|
palette1 = PixelPalette()
|
|
palette1.add_color(255, 0, 0, "Rouge")
|
|
palette1.add_color(0, 255, 0, "Vert")
|
|
|
|
try:
|
|
palette1.create_gradient(0, 1, "rgb")
|
|
except ValueError as e:
|
|
print(f"Erreur attendue (pas assez de couleurs): {e}")
|
|
|
|
# Cas 2: index1 >= index2
|
|
palette2 = PixelPalette()
|
|
palette2.add_color(255, 0, 0, "Rouge")
|
|
palette2.add_color(128, 128, 128, "Gris")
|
|
palette2.add_color(0, 255, 0, "Vert")
|
|
|
|
try:
|
|
palette2.create_gradient(2, 0, "rgb")
|
|
except ValueError as e:
|
|
print(f"Erreur attendue (index1 >= index2): {e}")
|
|
|
|
if __name__ == "__main__":
|
|
demo_rgb_gradient()
|
|
demo_hsv_gradient()
|
|
demo_error_cases()
|
|
|
|
print("\n=== Démonstration terminée ===")
|
|
print("La méthode create_gradient permet de créer des dégradés fluides")
|
|
print("entre deux couleurs existantes dans la palette en modifiant")
|
|
print("les couleurs intermédiaires sans en créer de nouvelles.") |