in src/spg_icvfxpatterns/PatternGenerators/linearSteppedColors.py [0:0]
def generator(cls, frame, kwargs, results):
""" The method which creates the checkerboard images based on the kwargs provided
:param frame: the frame number we are generating
:param kwargs: a dictionary of the arguments for the generator
:param results: a dictionary to store the results
"""
led_wall = kwargs.get("led_wall", None)
if led_wall is None:
raise ValueError("led_wall not found in kwargs")
frame_num, full_file_path = cls.get_frame_num_and_file_path(frame, led_wall.name)
led_wall_image = cls.create_solid_color_image(
led_wall.resolution_width, led_wall.resolution_height
)
min_value = cls.color_range_min
max_value = cls.color_range_max
value_range = max_value - min_value
value_per_step = value_range/cls.number_of_steps
height_per_step = int(led_wall.resolution_height/(cls.number_of_steps + 1))
red_cyan = [1.0 * max_value, 0.0 * min_value, 0.0 * min_value]
green_magenta = [0.0 * min_value, 1.0 * max_value, 0.0 * min_value]
blue_yellow = [0.0 * min_value, 0.0 * min_value, 1.0 * max_value]
for x in range(cls.number_of_steps + 1):
step_value = (value_per_step * x) + min_value
# Add In The Red/Cyan Ramp
red_cyan_value = [
red_cyan[0] - step_value, red_cyan[1] + step_value, red_cyan[2] + step_value
]
cls.add_ramp_section(height_per_step, led_wall, led_wall_image, red_cyan_value, x, 0)
# Add In The Green/Magenta Ramp
green_magenta_value = [
green_magenta[0] + step_value, green_magenta[1] - step_value, green_magenta[2] + step_value
]
cls.add_ramp_section(height_per_step, led_wall, led_wall_image, green_magenta_value, x, 1)
blue_yellow_value = [
blue_yellow[0] + step_value, blue_yellow[1] + step_value, blue_yellow[2] - step_value
]
# Add In The Blue/Yellow Ramp
cls.add_ramp_section(height_per_step, led_wall, led_wall_image, blue_yellow_value, x, 2)
# Write the image to disk and store the result
cls.write_image_and_store_result(
frame_num, full_file_path, led_wall.name, led_wall_image, results
)