def generator()

in src/spg_icvfxpatterns/PatternGenerators/referenceImage.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
        )

        wall_width_scaled = led_wall.resolution_width * cls.image_scale
        wall_height_scaled = led_wall.resolution_height * cls.image_scale

        reference_image = oiio.ImageBuf(cls.reference_filepath)
        spec = reference_image.spec()

        scale_factor = 1.0
        if reference_image.xmax > wall_width_scaled:
            scale_factor = reference_image.xmax/wall_width_scaled

        new_width = int(reference_image.xmax/scale_factor)
        new_height = int(reference_image.ymax / scale_factor)

        if new_height > wall_height_scaled:
            scale_factor = reference_image.ymax/wall_height_scaled
            new_width = int(reference_image.xmax / scale_factor)
            new_height = int(reference_image.ymax / scale_factor)

        y_centre = int((led_wall.resolution_height - new_height) * 0.5)
        x_centre = int((led_wall.resolution_width - new_width) * 0.5)
        resized = oiio.ImageBuf(oiio.ImageSpec(new_width, new_height, spec.nchannels, spec.format))
        oiio.ImageBufAlgo.resize(resized, reference_image)

        oiio.ImageBufAlgo.paste(
            led_wall_image, x_centre, y_centre, 0, 0, resized, roi=oiio.ROI.All
        )

        # 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
        )