Esempio n. 1
0
    def extend_color(self, color_data, palette):
        """
        :param color_data:
        :param palette:
        :return: palette, data_index
        """

        color_set = set()
        for color in color_data:
            color_set.add(color)

        if palette.can_extend(color_set):
            return palette, palette.extend(color_data)

        for pal in self._palettes:
            if pal is palette:
                continue
            if pal.can_extend(color_set):
                return pal, pal.extend(color_data)

        palette = Palette(self, 'palette_%d' % (len(self._palettes) + 1), [])
        self.add_palette(palette)
        if palette.can_extend(color_set, 65536):
            return palette, palette.extend(color_data)

        assert False